Android學習之路之資料的使用(二)
下午學習了SQLite並用剛學的做了一個非常簡單的資訊管理系統,系統完整做出來之後,我感覺單機版的管理系統都應該能做出來了!!!!
現在開始講講SQLite的用法(增刪查改)
介紹什麼的就不說了,百度一大推,還有講一下,既然是資料庫我都喜歡圖形化的操作,我在網上找了個,感覺不錯推薦大家用一下
http://yunpan.cn/Q7bYmCQucJ9qU 提取碼 fb99
介面是這樣的
用起來挺方便的!
SQLite提供了一個類SQLiteOpenHelper,可以當做一個工具類<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+19S8utC00ru49kRCT3BlbkhlbHBlcsC0vMyz0Mv8o6zA78Pm0N64xMr9vt2/4sP7us2w5rG+usWho7T6wuvI58/Co7o8L3A+CjxwPjxwcmUgY2xhc3M9"brush:java;">public class DBOpenHelper extends SQLiteOpenHelper {private static final String DBNAME = "sutdent.db";private static final int VERSION = 1;private static final String TAG="DBOpenHelper";/** * * @param context * 建構函式(庫名、版本號碼) */public DBOpenHelper(Context context) {super(context,DBNAME, null, VERSION);}@Override/* * (non-Javadoc) * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase) * 一般是建表和預設資料 */public void onCreate(SQLiteDatabase db) {String sql = "CREATE TABLE table_student(sid integer primary key,name varchar(20),age inter);";db.execSQL(sql);db.execSQL("insert into table_student values(1,'雄霸天',20)");db.execSQL("insert into table_student values(2,'黑旋風',21)");db.execSQL("insert into table_student values(3,'帥氣劉',22)");Log.i(TAG, "onCreate");}@Override/** * 一般是應用升級使用,同時對資料庫進行升級 * */public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.i(TAG, "onUpgrade");}}大家可以看看上述代碼,很簡單
super(context,DBNAME, null, VERSION);
指定資料庫的名字,這裡說一下,資料庫的名字最好加上“.db”如“student.db”這樣才能算是一個標準的資料庫檔案
版本號碼就預設1
資料庫的語句依然是SQL語句,沒有改變,改變的是如何運行這些sql語句
下面介紹一下(最基礎最基本的運行方法)
增加,刪除等不返回數值的sql語句可以使用
db.execSQL(sql);db.execSQL("update table_student set name="+name+",age="+age+" where sid="+id);db.execSQL(sql, Object[]);db.execSQL("update table_student set name=?,age=? where sid=?",new Object[]{name,age,id});同樣的效果,建議用第二種!
到這裡不禁要問,db如何而來
在使用Model裡使用DBOpenHelper的時候這樣寫
private DBOpenHelper helper;private SQLiteDatabase db;public StudentDao(Context context){helper = new DBOpenHelper(context);db = helper.getWritableDatabase();}然後就任意使用db了
當需要從資料庫提取值的時候需要這樣用
/*擷取全部學生*/public List getAllList(){List list = new ArrayList();Cursor cursor = db.rawQuery("select * from table_student"});while(cursor.moveToNext()){Student student = new Student(cursor.getInt(0),cursor.getString(1),cursor.getShort(2));list.add(student);}return list;}注意這個Cursor就像SQL裡的Result一樣,sql語句需要query,當然了也有其他的方法如
Cursor cursor = db.query("table_student", null, null, null, null, null, null);這樣寫有點繁瑣,不如一句sql語句痛快,這樣寫,參數比較多
我喜歡第一種
別忘了最後要關閉db,不然電腦會變卡的!
到此SQLite算是入門了,基本的增刪查改都會了,管理系統就能很輕鬆的寫出來了!!!!