搞Android開發很久了,卻還沒有寫過sqlite 先寫寫基礎的,後面擴充。。。
package com.king.android.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* 描述:資料庫。。。
* 作者:Andy.Liu
* 時間: 2012-8-2 下午10:37:27
**/
public class MyDataBaseAdapter {
private static final String TAG = "MyDataBaseAdapter";
private Context mContext = null;
public static final String KEY_ID = "_id";
public static final String KEY_NUM = "num";
public static final String KEY_DATA = "data";
private static final String DB_NAME = "king.db";
private static final String TABLE_KING = "king";
private static final int DB_VERSION = 1;
//建立表的語句
private static final String CREATE_TAB_KING = null;
//執行open()開啟資料庫,儲存返回的資料庫物件
private SQLiteDatabase mSQlLiteDatabase = null;
//由SQLiteOpenHelper繼承過來
private DatabaseHelper mDatabaseHelper = null;
//繼承SQLiteOpenHelper
private static class DatabaseHelper extends SQLiteOpenHelper{
//建構函式建立資料庫
public DatabaseHelper(Context context) {
/**
* 當調用getWriteableDatabase(),getReadableDatabase()方法時則建立一個資料庫
*/
super(context, DB_NAME, null, DB_VERSION);
}
@Override/*建立資料表*/
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TAB_KING);
}
@Override//升級資料庫
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS notes");
onCreate(db);
}
}
//建構函式取得Context
public MyDataBaseAdapter(Context context){
this.mContext = context;
}
//開啟資料庫,返回資料庫物件
public void open()throws SQLException{
mDatabaseHelper = new DatabaseHelper(mContext);
mSQlLiteDatabase = mDatabaseHelper.getWritableDatabase();
}
//關閉資料庫
public void close(){
mDatabaseHelper.close();
}
//插入一條資料
public long insertData(int num,String data){
ContentValues initValues = new ContentValues();
initValues.put(KEY_NUM, num);
initValues.put(KEY_DATA, data);
return mSQlLiteDatabase.insert(TABLE_KING, KEY_ID, initValues);
}
//刪除一條資料
public boolean deleteData(long rowId){
return mSQlLiteDatabase.delete(TABLE_KING, KEY_ID + "="+ rowId, null)>0;
}
//通過Cursor查詢所有資料
public Cursor fetchAllData(){
return mSQlLiteDatabase.query(TABLE_KING, new String[]{KEY_ID,KEY_NUM,KEY_DATA}, null, null, null, null, null);
}
//查詢指定資料
public Cursor fetchData(long rowId){
Cursor mCursor = mSQlLiteDatabase.query(true, TABLE_KING, new String[]{KEY_ID,KEY_NUM,KEY_DATA}, KEY_ID+ "="+rowId, null, null, null,null,null);
if(null!=mCursor){
mCursor.moveToFirst();
}
return mCursor;
}
//更新一條資料
public boolean updateData(long rowId,int num,String data){
ContentValues args = new ContentValues();
args.put(KEY_NUM, num);
args.put(KEY_DATA, data);
return mSQlLiteDatabase.update(TABLE_KING, args, KEY_ID+ "="+rowId, null)>0;
}
}