Android SQLite插入最佳化 SQLiteStatement

來源:互聯網
上載者:User

最近由於項目的需要,需要提高項目中資料的入庫效能,通過最佳化,發現入庫方法不同,效率真的差距很大。 

最初代碼如下,直接執行sql語句,外加事務提升效能: 
Java代碼  

  1. SQLiteDatabase database = new SQLiteDatabase();  
  2. if (database.isOpen())   
  3. {  
  4.     database.beginTransaction();  
  5.     try {  
  6.          //sql為insert into tableName (name) values ("test")  
  7.         database.execSQL(sql);  
  8.     }  
  9.         database.setTransactionSuccessful();  
  10.     } finally {  
  11.         database.endTransaction();  
  12.     }  
  13.     database.close();  
  14. }  




最佳化如下: 
Java代碼  

  1. SQLiteDatabase database = new SQLiteDatabase();  
  2. //sql為insert into tableName (name) values (?)  
  3. SQLiteStatement sqlListStatment = database.compileStatement(sql);  
  4. if (database.isOpen())   
  5. {  
  6.     database.beginTransaction();  
  7.     try {  
  8.         //index 為1開始索引,value為入庫的值  
  9.         //bingXXX為插入XXX類型  
  10.          sqLiteStatement.bindString(index, value);  
  11.          sqLiteStatement.executeInsert();  
  12.     }  
  13.         database.setTransactionSuccessful();  
  14.     } finally {  
  15.         database.endTransaction();  
  16.     }  
  17.     database.close();  
  18. }  


轉自 http://woodn-z.iteye.com/blog/1447719

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.