Android中使用SQLite資料庫

來源:互聯網
上載者:User

項目源碼下載

https://github.com/Wang-Jun-Chao/AndroidProjects

SQLite資料庫

輕量級關係型資料庫

建立資料庫需要使用的api:SQLiteOpenHelper

必須定義一個構造方法:

//arg1:資料庫檔案的名字//arg2:遊標工廠//arg3:資料庫版本public MyOpenHelper(Context context, String name, CursorFactory factory, int version){}

資料庫被建立時會調用:onCreate方法

資料庫升級時會調用:onUpgrade方法

建立資料庫

        MyOpenHelper oh =  MyOpenHelper(getContext(), , , );        SQLiteDatabase db = oh.getWritableDatabase();

getWritableDatabase():開啟可讀寫的資料庫

getReadableDatabase():在磁碟空間不足時開啟唯讀資料庫,否則開啟可讀寫資料庫

在建立資料庫時建立表

        public void onCreate(SQLiteDatabase db) {            // TODO Auto-generated method stub            db.execSQL("  person (_id    autoincrement,                     name (), phone (), money ())

資料庫的增刪改查

SQL語句

*   person (name, phone, money)  (, , );*   person  name =   _id = ;*  person  money =   name = ;*  name, phone  person  name = ;

執行SQL語句實現增刪改查

                db.execSQL(,  []{, , });                Cursor cs = db.rawQuery(,  []{});

測試方法執行前會調用此方法

          ()  Exception {            .setUp();                        oh =  MyOpenHelper(getContext(), , , );        }

使用api實現增刪改查

插入

                ContentValues cv =  ContentValues();        cv.put(, );        cv.put(, );        cv.put(, );                 i = db.insert(, , cv);

刪除

                 i = db.(, ,  String[]{, });

修改

        ContentValues cv =  ContentValues();        cv.put(, );         i = db.update(, cv, ,  []{});

更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

查詢

                                Cursor cs = db.query(,  []{, }, ,  []{}, , , );        (cs.moveToNext()){                         name = cs.getString(cs.getColumnIndex());             money = cs.getString(cs.getColumnIndex());            System.out.println(name +  + money);        }

事務

保證多條SQL語句要麼同時成功,要麼同時失敗

最常見案例:銀行轉賬

事務api

        try {                        dbbeginTransaction();                                    dbsetTransactionSuccessful();        } finally{                                    dbendTransaction();        }

把資料庫的資料顯示至螢幕

任意插入一些資料

定義業務bean:Person.java

讀取資料庫的所有資料

        Cursor cs = db.query(, , , , , , );        (cs.moveToNext()){             name = cs.getString(cs.getColumnIndex());             phone = cs.getString(cs.getColumnIndex());             money = cs.getString(cs.getColumnIndex());                        Person p =  Person(name, phone, money);                        people.add(p);        }

把集合中的資料顯示至螢幕

         LinearLayout ll = (LinearLayout) findViewById(R.id.ll);         (Person p : people){                          TextView tv =  TextView();             tv.setText(p.toString());                          ll.addView(tv);         }

分頁查詢

        Cursor cs = db.query(, , , , , , , );
相關文章

聯繫我們

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