Android 數據存儲與讀取:SQLite
在Android平臺上,集成了一個嵌入式關系型數據庫—SQLite。如果你想要開發 Android 應用程序,一定需要在 Android 上存儲數據,使用SQLite 數據庫是一種非常好的選擇。
下面介紹的基本使用:
是一個抽象類不能直接實例化,所以新建一個類DBOpenHelper繼承自SQLiteOpenHelper :
public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(Context context) { super(context, "yhn.db", null, 1); } //數據庫第一次創建時候調用, public void onCreate(SQLiteDatabase db) { db.execSQL("create table user(uid integer primary key autoincrement, uname varchar(20), uaddress varchar(20))"); } //數據庫文件版本號發生變化時調用 public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { }
如果執行上邊的代碼,則會創建一個數據庫文件xx.db
數據庫操作類:
public class DBDao { DBOpenHelper dbOpenHelper; public DBDao(Context context){ this.dbOpenHelper=new DBOpenHelper(context); } /** * 添加一條數據 * @param user */ public void save(User user){ SQLiteDatabase db=dbOpenHelper.getWritableDatabase(); db.execSQL("insert into user(uname,uaddress) values(?,?)", new Object[]{user.getUname(),user.getUaddress()}); db.close(); } /** * 刪除一條數據 * @param uid */ public void delete(Integer uid){ SQLiteDatabase db=dbOpenHelper.getWritableDatabase(); db.execSQL("delete from user where uid=?", new Object[]{uid}); db.close(); } /** * 更新一條數據 * @param user */ public void update(User user){ SQLiteDatabase db=dbOpenHelper.getWritableDatabase(); db.execSQL("update user set uname=?,uaddress=? where uid=?", new Object[]{user.getUname(),user.getUaddress(),user.getUid()}); db.close(); } /** * 查找一條數據 * @param uid */ public User find(Integer uid){ SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); Cursor cursor =db.rawQuery("select * from user where uid=?", new String[]{uid.toString()}); if(cursor.moveToFirst()){ int uid2=cursor.getInt(cursor.getColumnIndex("uid")); String uname=cursor.getString(cursor.getColumnIndex("uname")); String uaddress=cursor.getString(cursor.getColumnIndex("uaddress")); User user=new User(); user.setUid(uid2); user.setUname(uname); user.setUaddress(uaddress); return user; } cursor.close(); return null; } /** * 分頁查找數據 * @param offset 跳過多少條數據 * @param maxResult 每頁多少條數據 * @return */ public ListgetScrollData(int offset, int maxResult){ List users=new ArrayList (); SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); Cursor cursor =db.rawQuery("select * from user order by uid asc limit ?,?", new String[]{String.valueOf(offset), String.valueOf(maxResult)}); while(cursor.moveToNext()){ int uid2=cursor.getInt(cursor.getColumnIndex("uid")); String uname=cursor.getString(cursor.getColumnIndex("uname")); String uaddress=cursor.getString(cursor.getColumnIndex("uaddress")); User user=new User(); user.setUid(uid2); user.setUname(uname); user.setUaddress(uaddress); users.add(user); } return users; } /** * 獲取數據總數 * @return */ public long getCount(){ SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); Cursor cursor =db.rawQuery("select count(*) from user", null); cursor.moveToFirst(); long reslut=cursor.getLong(0); return reslut; } }
示例:向數據庫中添加一條數據
DBDao dbDao=new DBDao(this); User user=new User(); user.setUname("qixiaohu"); user.setUaddress("chengdu"); dbDao.save(user);轉自:http://blog.csdn.net/mimitracely/article/details/7982976
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!