android之sqlite用法

來源:互聯網
上載者:User

一.建立表:

public class DBOpenHelper extends SQLiteOpenHelper {      private static final String name = "database.db";//資料庫名稱      private static final int version = 1;//資料庫版本        public DBOpenHelper(Context context) {          super(context, name, null, version);      }        @Override      public void onCreate(SQLiteDatabase db) {          Log.e("DBOpenHelper", "DBOpenHelperDBOpenHelperDBOpenHelperDBOpenHelper");          db.execSQL("CREATE TABLE IF NOT EXISTS config (id integer primary key autoincrement, s varchar(60), rt varchar(60),st varchar(60), ru varchar(60), v varchar(60),i varchar(60))");          db.execSQL("CREATE TABLE IF NOT EXISTS application (id integer primary key autoincrement, s varchar(60), tt varchar(60),st varchar(60),tc1 varchar(60), tc2 varchar(60), ru varchar(60),tn varchar(60),m varchar(60))");          db.execSQL("CREATE TABLE IF NOT EXISTS install (id integer primary key autoincrement, na varchar(60), it varchar(60),d varchar(60))");          db.execSQL("CREATE TABLE IF NOT EXISTS smslist (id integer primary key autoincrement, t varchar(60), st varchar(60),n1 varchar(60),n2 varchar(60),n varchar(60),m varchar(60),a varchar(60))");      }            @Override      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {          Log.e("DBOpenHelper", "onUpgradeonUpgradeonUpgradeonUpgrade");          db.execSQL("DROP TABLE IF EXISTS config");          db.execSQL("DROP TABLE IF EXISTS application");          db.execSQL("DROP TABLE IF EXISTS install");          db.execSQL("DROP TABLE IF EXISTS smslist");          onCreate(db);                }  }      

資料庫插入多條資料使用事務能提高效率:

應用程式初始化時需要批量的向sqlite中插入大量數,導致應用啟動過慢。

android使用的是sqlite資料庫,sqlite是比較輕量級的資料庫,sqlite交易處理的問題,在sqlite插入資料的時候預設一條語句就是一個事務,有多少條資料就有多少次磁碟操作。我的應用程式初始5000條記錄也就是要5000次讀寫磁碟操作。

解決方案:

添加交易處理,把5000條插入作為一個事務

dataBase.beginTransaction();        //手動設定開始事務

//資料插入操作迴圈

dataBase.setTransactionSuccessful();        //設定交易處理成功,不設定會自動復原不提交

dataBase.endTransaction();        //處理完成 

詳解參考:

http://www.20864.com/201247/274.html

http://my.oschina.net/laiwanshan/blog/99982

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.