本篇主要记录如何使用Android自带的SQLiteOpenHelper帮助类来进行SQLite数据的CRUD操作。

一、自定义MyDatabaseHelper类,继承自SQLiteOpenHelper抽象类。

/** * 数据库帮助类 */public class MyDatabaseHelper extends SQLiteOpenHelper {    private Context mContext;    private static MyDatabaseHelper myDatabaseHelper;    private static String DATABASE_NAME = "BookStore.db";    //创建用户表的SQL语句    private String CREATE_USER = "create table Tb_User (\n" +            "id integer primary key autoincrement,\n" +            "name text,\n" +            "sex text)";    /**     * 获取MyDatabaseHelper对象     * @param context     * @return     */    public static MyDatabaseHelper getInstance(Context context) {        if (myDatabaseHelper == null) {            myDatabaseHelper = new MyDatabaseHelper(context, DATABASE_NAME, null, 1);        }        return myDatabaseHelper;    }    public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);        this.mContext = context;    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        sqLiteDatabase.execSQL(CREATE_USER);    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {        //如果数据库需要进行升级更新(比如,增加表字段之类的),请在这里编写代码,上面的version要加1.    }}

二、可以给每一个Model增加一个M_Model管理类,里面进行CRUD操作处理。

/** * 用户管理类 */public class M_User implements IUser {    private SQLiteDatabase sqLiteDatabase;    private MyDatabaseHelper myDatabaseHelper = MyDatabaseHelper.getInstance(MyApplication.getContext());    private String TABLE_NAME = "Tb_User";    private Tb_User tb_user;    private List userList;    /**     * 获取用户列表     * @param condition     * @param conditionArgs     * @param onGetUserListListener     */    @Override    public void getUserList(final String condition, final String[] conditionArgs, final OnGetUserListListener onGetUserListListener) {        new Thread(new Runnable() {            @Override            public void run() {                userList = new ArrayList<>();                sqLiteDatabase = myDatabaseHelper.getReadableDatabase();                Cursor cursor = sqLiteDatabase.query(TABLE_NAME, new String[] {"id", "name", "sex"}, condition                        , conditionArgs, null, null, null);                if (cursor.moveToFirst()) {                    do {                        tb_user = new Tb_User();                        String name = cursor.getString(cursor.getColumnIndex("name"));                        String sex = cursor.getString(cursor.getColumnIndex("sex"));                        tb_user.setName(name);                        tb_user.setSex(sex);                        userList.add(tb_user);                    } while (cursor.moveToNext());                }                cursor.close();                if (userList.size() != 0) {                    onGetUserListListener.success(userList);                } else {                    onGetUserListListener.failed();                }            }        }).start();    }    /**     * 用户添加     * @param tb_user     * @param onCallBackNullListener     */    @Override    public void userAdd(final Tb_User tb_user, final OnCallBackNullListener onCallBackNullListener) {        new Thread(new Runnable() {            @Override            public void run() {                sqLiteDatabase = myDatabaseHelper.getWritableDatabase();                ContentValues contentValues = new ContentValues();                contentValues.put("name", tb_user.getName());                contentValues.put("sex", tb_user.getSex());                long result = sqLiteDatabase.insert(TABLE_NAME, null, contentValues);                if (result > 0) {                    onCallBackNullListener.success();                } else {                    onCallBackNullListener.failed();                }            }        }).start();    }    /**     * 用户修改     * @param tb_user     * @param condition     * @param conditionArgs     * @param onCallBackNullListener     */    @Override    public void userUpdate(final Tb_User tb_user, final String condition, final String[] conditionArgs, final OnCallBackNullListener onCallBackNullListener) {        new Thread(new Runnable() {            @Override            public void run() {                sqLiteDatabase = myDatabaseHelper.getWritableDatabase();                ContentValues contentValues = new ContentValues();                contentValues.put("name", tb_user.getName());                contentValues.put("sex", tb_user.getSex());                int result = sqLiteDatabase.update(TABLE_NAME, contentValues, condition, conditionArgs);                if (result > 0) {                    onCallBackNullListener.success();                } else {                    onCallBackNullListener.failed();                }            }        }).start();    }    /**     * 用户删除     * @param condition     * @param conditionArgs     * @param onCallBackNullListener     */    @Override    public void userDelete(final String condition, final String[] conditionArgs, final OnCallBackNullListener onCallBackNullListener) {        new Thread(new Runnable() {            @Override            public void run() {                sqLiteDatabase = myDatabaseHelper.getWritableDatabase();                ContentValues contentValues = new ContentValues();                contentValues.put("name", tb_user.getName());                contentValues.put("sex", tb_user.getSex());                int result = sqLiteDatabase.delete(TABLE_NAME, condition, conditionArgs);                if (result > 0) {                    onCallBackNullListener.success();                } else {                    onCallBackNullListener.failed();                }            }        }).start();    }}

 

更多相关文章

  1. Android(安卓)ApiDemos示例解析(23):App->Intents
  2. 如何在一个声卡添加pa codec设备
  3. Android(安卓)使用ORMLite 操作数据库
  4. Android设置变量值之——与或非(&、|、~)
  5. Android(安卓)的权限设置大全
  6. Android(安卓)蓝牙操作--读取远程已配对的蓝牙设备
  7. android用户界面教程实例汇总
  8. Android(安卓)TabHost的使用(二)
  9. android 定时熄屏

随机推荐

  1. AS(Android(安卓)Studio)开发开源Android库
  2. Android(安卓)自定义View实现打钩(签到)
  3. Android活动一探究竟
  4. android 窗口管理框架解析
  5. (三) 在Ubuntu上为Android增加硬件抽象层
  6. 一种巧妙的绕过Android锁屏密码的方法
  7. Android中常被利用的漏洞
  8. android adapter的体系
  9. kotlin中异步处理框架-协程(Coroutines)
  10. Android(安卓)studio 下出现"Cannot reso