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 List
getScrollData(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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!