Android 數據存儲與讀取:SQLite

jopen 12年前發布 | 47K 次閱讀 Android Android開發 移動開發

在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

Android 數據存儲與讀取:SQLite


數據庫操作類:

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