在我的上一篇部落格《andorid SQLite簡介》中對SQLite的作用、特點等做了一個簡單的介紹,這篇部落格向大家介紹一下它的基本操作。
SQLiteDatabase類也專門提供了一些函數來操作資料庫,有 insert,delete,update,query(),不過這些函數需要的參數比較多,適合對SQL語句不太懂的新手使用,如果想提高自己的水平,那麼最好使用exeSQL(),rawQuery()。因為這兩個方法比較直觀明了、比較省事。
在程式初始化時候,必須先建立資料庫以對資料庫進行更新,所以這裡需要繼承一個 SQLiteOpenHelper抽象類別,這裡有兩個方法 onCreate(),onUpgreade()兩個方法,前者用來建立資料庫及對資料庫的一些初始化操作,後者是當資料庫版本進行更新時候用。
下面的例子是建立了一個資料庫名為:MyDB,版本為1的資料庫,並在資料庫中建立了一個User表。這裡利用了建構函式傳入了 資料庫名和版本名常量,參數為Context 對象。
public class DatebaseHelper extends SQLiteOpenHelper {public final static String NAME="MyDB";public final static int VERSION=1;public DatebaseHelper(Context context) { super(context, NAME, null, VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE User (userID integer primary key autoincrement, userName varchar(20), pwd varchar(12))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS User"); onCreate(db);}}用SQLiteDatabase來操作SQLite資料庫。public class DatebaseService {private DatebaseHelper dbHelper; public DatebaseService(Context context) { this.dbHelper = new DatebaseHelper(context);}//儲存資料。public void save(User user){ SQLiteDatabase db=dbHelper.getWritableDatabase(); db.execSQL("insert into user(userName,pwd) values(?,?)", new Object[]{user.getName(),user.getpwd()}); }//更新資料 public void update(User user){ SQLiteDatabase db=dbHelper.getReadableDatabase(); db.execSQL("update user set userName=?,pwd=? where userID=?", new Object[]{user.getuserName(),user.getpwd(),user.getuserID()}); }//尋找資料 public User find(Integer userID){ SQLiteDatabase db=dbHelper.getReadableDatabase(); Cursor cursor=db.rawQuery("select * from User where userID=?",new String[]{userID.toString()} ); while(cursor.moveToNext()){ String name=cursor.getString(cursor.getColumnIndex("userName")); int pwd=cursor.getInt(cursor.getColumnIndex("pwd")); int id=cursor.getInt(cursor.getColumnIndex("userID")); return new User(id,name,pwd); } return null; }//刪除資料 public void delete(Integer userID){ SQLiteDatabase db=dbHelper.getReadableDatabase(); db.execSQL("delete from User where userID=?",new Object[]{userID}); } public Long getCount(){ SQLiteDatabase db=dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select count(*) from User", null); cursor.moveToFirst(); return cursor.getLong(0); }
當然SQLite的操作還不止這一點,這裡只是一些簡單的增刪改查,還有很多更好的操作應用,將在以後介紹。