SQLite數據庫的基本使用


內置在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     @Override
14     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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM