SQLite是一個輕量級的資料庫,在android上就是使用了該資料庫,一個資料庫檔案即代表了一個資料庫,sql文法和mysql基本一樣吧,表達方式不同而已
獲得SQLiteDatabase 對象
SQLiteDatabase的方法
static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags)
e: SQLiteDatabase db = SQLiteDatabase.openDatabase(path,factory,flags); //即開啟path代表的路徑檔案
static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory)
e: SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(mFile,factory); //即開啟mFile對應的資料庫檔案啦,如果該檔案不存在則建立一個
static SQLiteDatabase openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory);
e: SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabaes(mPath,factory); //即開啟mPath對應的資料庫檔案了,如果該檔案不存在則建立一個
======================================================================================================
SQLiteDatabase提供了操作資料庫的幾個方法
execSQL(String sql,Object[] objs); //帶預留位置的執行sql語句
exexSQL(String sql); //直接執行sql語句
insert(String table_name, String nullColumn, ContentValues values); //執行sql插入語句
delete(String table_name, String where,String[] whereArgs); //刪除
update(String table_name, ContentValues values, String where, String[] whereArgs); //更新
for example:
db.execSQL("select * from table_name where id > ?", new int[] {10}); //?表示帶預留位置的,預留位置要和後面的數群組類型一致,順序一致
db.execSQL("select * from table_name where id > 10") //和第一條句子一樣 相當於 mysql 語句中執行 select * from table_name where id > 10;
似乎只要用execSQL(xc);這句話就基本解決了所有的需要了...增刪改查...
ContentValues values = new ContentValues();
values.put("name","admin");
values.put("age","20"); //values.put(columnName,value);==>Map.put(key,value);
db.insert(table_name,null,values); //在table_name表中插入記錄,列名為name = 值admin age = 20
//等價於 insert into table_name (name,age) values ("admin",20);
db.delete("table_name","name like",new String[] {"a%"}); //刪除name列值以a開頭的一行記錄 ==> delete table_name where name like "a%";
values.put("age","25");
db.update("table_name",values,"age =",new String[] ("20"); //更新age = 20 的記錄,修改的值放在values中 ==>update table_name set age = 25 where age =20;