標籤:sqlite android android開發
簡介
sqilte是一個輕量級的資料庫,滿足資料庫的基本操作,由於移動端的記憶體有限,所以sqilte剛好能滿足移動端開發的基本要求。
廢話不多說,上代碼
1.首先介紹一下,sqlite的管理類SQLiteOpenHelper。這個類用來管理資料庫的建立和版本更新,需要繼承它的方法。
代碼如下:
public class Db extends SQLiteOpenHelper { public Db(Context context, String name, CursorFactory factory, int version) { super(context, "db", null, 1); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("CREATE TABLE user("+"name TEXT DEFAULT \"\""+"sex TEXT DEFAULT \"\")"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub }}
其中onCreate當資料庫建立時候回調,onUpgrade方法是在版本號碼增大時候,自動回調,所以可以吧資料庫要更新的操作寫在裡面。
資料庫的插入操作
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Db db = new Db(this); //擷取資料庫的方式有兩種,這是擷取可讀寫,還有一種擷取可讀的資料庫。db.getReadableDatabase()方法獲得。 SQLiteDatabase dbWriter = db.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("name", "shangsan"); cv.put("sex", "male"); //第一參數表示表明,第二個表示空列,第三個表示要填寫的資料,用ContentValues 封裝。 //dbWriter.insert(table, nullColumnHack, values); dbWriter.insert("user", null,cv); db.close(); }}
查詢操作
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Db db = new Db(this);// SQLiteDatabase dbWriter = db.getWritableDatabase();// ContentValues cv = new ContentValues();// cv.put("name", "shangsan");// cv.put("sex", "male");// //dbWriter.insert(table, nullColumnHack, values);// SQLiteDatabase dbRaed = db.getReadableDatabase(); //Cursor c = dbRaed.query(table, columns, selection, selectionArgs, groupBy, having, orderBy); Cursor c = dbRaed.query("user", null, "name=?", new String[]{"zhangsan"}, null, null, null); while (c.moveToNext()) { String name = c.getString(c.getColumnIndex("name")); String sex = c.getString(c.getColumnIndex("sex")); System.out.println(name+" "+sex); } }}
Android資料庫Sqlite-android學習之旅(九)