SQLite資料庫的基本使用

來源:互聯網
上載者:User

標籤:

內建在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資料庫的基本使用

相關文章

聯繫我們

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