標籤:
內建在android底層的小型資料庫的使用基本上跟SQL sever使用都是一致的;
建立一個SQLite資料的基本流程如下,需要實現SQLopenHelper這個資料庫管理助手介面。如下:建立一個mySQLiteopebHelper類
1 public class MySQLiteHelper extends SQLiteOpenHelper { 2 // 構造一個SQLiteOpenHelper 3 public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){ 4 super(context,name,factory,version); 5 } 6 7 @Override 8 public void onCreate(SQLiteDatabase db) { 9 // 建立一個資料庫以及表格(ID,NAME,AGE),其中主鍵為ID,自增形式10 db.execSQL("create table mytable(id integer primary key autoincrement,name text,age integer)");11 }12 13 @Override14 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {15 // 資料庫更新16 }17 }
View Code
在Activity裡面的執行個體化一個資料庫管理助手執行個體,接著建立一個資料庫執行個體。getReadableDatabase()和getWirtableDatabase()分別可以建立一個SQLiteDatabase,但是兩個方法還是有區別的,前者建立的資料庫是以讀寫方式開啟資料庫的,當磁碟滿的時候,會失敗,重新開啟會以唯讀模式開啟資料庫,後者建立的資料庫也是以讀寫方式開啟的資料庫,當磁碟滿的時候,會失敗報錯,所以一般建議使用getReadableDatabase()方式建立資料庫。下面的例子列舉了資料庫的常用方法。
1 MySQLiteHelper mySQLiteHelper; // 申明一個資料庫管理小幫手物件 2 SQLiteDatabase database; // 申明一個資料庫物件 3 4 // 構造一個資料庫管理小幫手物件 5 mySQLiteHelper=new MySQLiteHelper(this,"testdb",null,1); 6 // 該方法建立一個資料庫,可以讀寫,磁碟滿了會自動更改模式為唯讀模式,getWritableDatabase()盤滿報錯 7 database=mySQLiteHelper.getReadableDatabase(); 8 // 建立一個資料表 9 database.execSQL("create table mytable(id integer primary key autoincrement,name text,age integer)");10 // 增加資料(第一種方法)11 ContentValues contentValues=new ContentValues();12 contentValues.put("id",1);13 contentValues.put("name","隔壁老王");14 contentValues.put("age",30);;15 database.insert("mytable",null,contentValues);16 // 增加資料(方法二)17 String intsert="intsert into mytable(id,name,age) value(1,\"隔壁老王\",30)";18 database.execSQL(intsert);19 // 刪除資料(刪除表mytable,id=1那一行開始的系列資料)(方法一)20 database.delete("mytable","id=?",new String[]{"1"});21 // 刪除資料9方法二)22 String delete="delete from mytable where id=2";23 database.execSQL(delete);// 執行SQL語句24 // 查詢資料(返回一個指標索引,以此調用相應方法查詢資料)25 Cursor cursor=database.query("mytable",new String[]{"id","name","age"},null,null,null,null,null);26 while (cursor.moveToNext()){27 int idindex=cursor.getColumnIndex("id");28 int id=cursor.getInt(idindex);29 30 int nameindex=cursor.getColumnIndex("name");31 String name=cursor.getString(nameindex);32 33 int ageindex=cursor.getColumnIndex("age");34 int age=cursor.getInt(ageindex);35 36 String result=id+" "+name+" "+age+"\n";37 }38 // 修改資料39 ContentValues contentValues1=new ContentValues();40 contentValues1.put("id",3);41 contentValues1.put("name","隔壁小王");42 contentValues1.put("age",15);43 database.update("mytable",contentValues1,"id=?",new String[]{"1"});44 // 關閉資料庫45 database.close();
View Code
SQLite資料庫的基本使用