標籤:
Sqlite:
1.一款用來實現本機資料儲存的輕量級資料管理工具,是眾多用來實現資料庫管理的工具之一。
2.Android已經將SQLite的代碼功能吸收在它的系統中,我們可以直接在Android程式中使用SQLite的語句來建立資料庫,並實現資料庫的增刪查改
SQLite的簡單使用方法:
如何獲得一個資料庫的class模板,並設定資料庫裡的資料結構:
自己建立一個類,繼承SQLiteOpenHelper,並重寫構造方法,oncreate(),onUpgrade()
自訂類的代碼實現方法和構造方法的原始模板解析:
public class Database extends SQLiteOpenHelper { public Database(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version);
//Context
//String name "建立資料庫的名字"
//SQLiteDatabase.CursorFactory factory "在資料庫中尋找是的游標(相當於數組中的下標)"
// int Version "資料庫的版本資訊"
} @Override public void onCreate(SQLiteDatabase db) { //在建立資料庫的時候調用 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //每次啟動資料庫會檢測資料庫的版本資訊,如果版本有變動就會執行此方法 }}
用來實現資料庫的自訂類的具體代碼:
public class Data extends SQLiteOpenHelper
public Data(Context context) {
//簡單起見,直接指定了資料庫的名字為DATA,游標資訊為null,版本為1
//所以在自訂的類的構造方法中只有Context參數
//在調用父類構造方法的時候,給定固定的參數來簡化資料庫建立
super(context,"DATA", null, 1); } @Override public void onCreate(SQLiteDatabase db) {
//建立資料庫建構內容的語句,具體解析在下文整理 db.execSQL("CREATE TABLE user("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")");
//以上的語句給出了一個名為user的資料庫結構對象,裡麵包含INTERGER類型的_id資訊,並自增
//TEXT資料類型的name
//text資料類型的sex
} @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //由於給出了版本參數資訊為固定的1,所以不會執行資料庫更新操作 }}
自己重寫了資料庫的模板後,如何?資料庫的使用和管理:
1.利用自訂的資料庫類來建立一個資料庫物件,
2.再通過建立的資料庫得到可讀的資料庫物件和可寫的資料庫物件,
建立ContentValues對象向獲得的可寫資料庫中新增內容,實現代碼:
Private Data data = new Data(this);private SQLiteDatabase dbWriter = db.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("name",etName.getText().toString()); cv.put("sex",etSex.getText().toString());
//insert方法的三個參數的意義分別是:插入資料表的名稱,插入資料表的位置資訊,插入的對象
dbWriter.insert("user",null,cv);
//每次使用完資料庫之後,記得關閉資料庫,類似I/O的關閉
dbWrite.close();
註:位置資訊這裡填的是null,具體運行方式尚不清楚,但看到這裡的時候,有時間去研究一下
通過獲得的可讀資料庫物件,在目標資料庫中進行尋找的方法實現代碼:
SQLiteDatabase DB = db.getReadableDatabase();
//建立一個游標對象,指明在“user”資料表中尋找,後面的參數是一系列限制條件,
//全部為null意味輸出所有user中的資料Cursor c = DB.query("user",null,null,null,null,null,null);
//當游標仍然能夠向下一行啟動並執行時候,執行資料庫的讀取操作
while (c.moveToNext()){String name=c.getString(c.getColumnIndex("name"));String sex=c.getString(c.getColumnIndex("sex"));Toast.makeText(getApplicationContext(),name+"--"+sex,Toast.LENGTH_SHORT).show();
}
SQLite在Android程式中的使用方法,SQLite的增刪查改方法