今天我們學(xué)習(xí)了一款SQLite數(shù)據(jù)庫(kù),SQLite是一款輕型的數(shù)據(jù)庫(kù)前域,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng)辕近,它能夠支持Windows、Linux匿垄、Unix等主流操作系統(tǒng)移宅,并且能夠跟很多程序語(yǔ)言相結(jié)合。
代碼建庫(kù):在代碼中動(dòng)態(tài)建立數(shù)據(jù)庫(kù)是比較常用的方法椿疗,在程序運(yùn)行過(guò)程中漏峰,當(dāng)需要進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),應(yīng)用程序會(huì)首先嘗試打開(kāi)數(shù)據(jù)庫(kù)届榄,此時(shí)如果數(shù)據(jù)庫(kù)并不存在浅乔,程序則會(huì)自動(dòng)建立數(shù)據(jù)庫(kù),然后再打開(kāi)數(shù)據(jù)庫(kù)痒蓬。
類(SQliteOpenHelpe):抽象類童擎,也叫助手類,對(duì)數(shù)據(jù)庫(kù)的基本操作攻晒,因此只要調(diào)用這個(gè)類顾复,就可以完成對(duì)數(shù)據(jù)庫(kù)的添加、更新鲁捏、刪除和查詢等操作芯砸。
實(shí)驗(yàn)步驟:
1、首先建立一個(gè)建立工程文件SQliteActivity给梅,在本次試驗(yàn)中有建立好的試驗(yàn)包假丧,直接用eclipse打開(kāi)相關(guān)文件夾就可以;
2动羽、在工程文件的src/com.fxc.sqlitetest目錄下創(chuàng)建新的java文件dataBasehelp
3包帚、調(diào)用數(shù)據(jù)庫(kù),在上述Java文件中輸入以下代碼运吓。
public void onCreate(SQLiteDatabase db) {
String sql="create table person(pid integer primary key autoincrement,name varchar(50),password varchar(20))";
db.execSQL(sql);}
4渴邦、在主程序中調(diào)用databasehelp類進(jìn)行數(shù)據(jù)庫(kù)創(chuàng)建(按鈕,編輯框拘哨,標(biāo)簽等)
private dataBasehelp dBasehelp;
private Button insert,requue,updata,delateButton;
private EditText username,userpassword;
private TextView textview;
5谋梭、接下來(lái)進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作,實(shí)現(xiàn)數(shù)據(jù)insert
insert(String table, String nullColumnHack, ContentValues values)
SQLiteDatabase sqLiteDatabase=dBasehelp.getWritableDatabase();
String name=username.getText().toString().trim();
String password=userpassword.getText().toString().trim();
ContentValues cValues=new ContentValues();
cValues.put("name", name);
cValues.put("password", password);
sqLiteDatabase.insert("person", null, cValues);
Toast.makeText(MainActivity.this, "用戶已注冊(cè)", 3000).show();
sqLiteDatabase.close();
6倦青、接下來(lái)進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作瓮床,實(shí)現(xiàn)數(shù)據(jù)query
SQLiteDatabase sqLiteDatabase=dBasehelp.getReadableDatabase();
Cursorcursor=sqLiteDatabase.query("person",new String[]{"name"},"name=?",new String[]{name},null,null,null);
注:不管你如何執(zhí)行查詢,都會(huì)返回一個(gè)Cursor,這是 Android 的 SQLite 數(shù)據(jù)庫(kù)游標(biāo)隘庄。
通過(guò)使用getCount() 方法得到結(jié)果集中有多少記錄踢步;
通過(guò)moveToFirst(), moveToNext(), 和 isAfterLast() 方法遍歷所有記錄;
通過(guò)getColumnNames() 得到字段名峭沦;
通過(guò)getColumnIndex() 轉(zhuǎn)換成字段號(hào)贾虽;
通過(guò)getString()逃糟,getInt() 等方法得到給定字段當(dāng)前記錄的值吼鱼;
通過(guò)requery() 方法重新執(zhí)行查詢得到游標(biāo);
通過(guò)close() 方法釋放游標(biāo)資源绰咽;
7菇肃、接下來(lái)進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作,實(shí)現(xiàn)數(shù)據(jù)delete
SQLiteDatabase sqLiteDatabase=dBasehelp.getWritableDatabase();
String name=username.getText().toString();
String password=userpassword.getText().toString();
sqLiteDatabase.delete("person","name=?andpassword=?",new String[]{name,password});
Toast.makeText(MainActivity.this, "用戶已刪除", 3000).show();
sqLiteDatabase.close();
通過(guò)這節(jié)課的學(xué)習(xí)取募,我學(xué)會(huì)了在eclipse中使用代碼創(chuàng)建數(shù)據(jù)庫(kù)琐谤,并且對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)添加,登錄玩敏,修改以及刪除斗忌,雖然在實(shí)驗(yàn)操作的過(guò)程中遇到了一些困難,比如我的SQLiteExpertPers中數(shù)據(jù)出現(xiàn)無(wú)法更新的情況旺聚,以及在主程序調(diào)用過(guò)程中织阳,代碼正常無(wú)誤,卻無(wú)法在虛擬機(jī)上運(yùn)行程序的狀況砰粹,經(jīng)過(guò)老師和同學(xué)的幫助唧躲,這些問(wèn)題都得到了解決,實(shí)驗(yàn)結(jié)果非常完美的呈現(xiàn)出來(lái)碱璃,我一定會(huì)繼續(xù)努力學(xué)習(xí)這門課程弄痹,并且不斷地在實(shí)踐中鍛煉自己的操作能力。
以下為本次實(shí)驗(yàn)效果截圖