数据库操作建议用ORM框架,简单高效。这里推荐xUtils,里面包含DBUtils。github地址:https://github.com/wyouflf/xUtils

  获得数据库实例建议用单例模式。

 static DbUtils db = null;
  public static DbUtils getDb(Context context) {
    if (context == null) {
      context = DoctorApplication.getInstance();
    }
    if (db == null) {
      db = DbUtils.create(context, "xUtils.db");
    });
    db.configAllowTransaction(true);
    return db;
  }
    db.configAllowTransaction(true);
    return db;
}

  创建一个实体类,对应数据库中的表。

@Table(name = "User")
  public class User {
    private int id; //主键ID,必须
    private String uid;  
    private String type;
    public int getId() {
   return id;
  }
   public void setId(int id) {
      this.id = id;
   }
    public String getType() {
      return type;
    }  
    public void setType(String type) {
      this.type = type;
    }
    public String getUid() {
      return uid;
    }
    public void setUid(String uid) {
      this.uid = uid;
    }
  }

  查找:

// 查找,根据主键ID查找
User userTemp = db.findById(User.class, user.getId());
List<User> list = db.findAll(User.class);//通过类型查找,查找所有

User user = db.findFirst(Selector.from(User.class).where("type","=","0"));

// IS NULL
User user = db.findFirst(Selector.from(User.class).where("type","=", null));
// IS NOT NULL
User user = db.findFirst(Selector.from(User.class).where("type","!=", null));

List<User> list = db.findAll(Selector.from(User)
.where("id" ,"<", 54)
.and(WhereBuilder.b("id", ">", 20).or("id", " < ", 30))
.orderBy("id")
.limit(pageSize)
.offset(pageSize * pageIndex));

// op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
User test = db.findFirst(Selector.from(User.class).where("id", "in", new int[]{1, 2, 3}));
// op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
User test = db.findFirst(Selector.from(User.class).where("uid", "between", new String[]{"1", "5"}));

DbModel dbModel = db.findDbModelAll(Selector.from(User.class).select("uid"));//select("name")只取出name列
List<DbModel> dbModels = db.findDbModelAll(Selector.from(User.class).groupBy("type").select("uid", "count(uid)"));
...

List<DbModel> dbModels = db.findDbModelAll(sql); // 自定义sql查询
db.execNonQuery(sql) // 执行自定义sql

//多条件混合查询

List<User> userEnts = TCommUtil.getDb(this).findAll(Selector.from(User.class).where(WhereBuilder.b("id", ">", 5).or("id", "<", 3)).and("uid", "=", "0"));

//模糊查询like

 String str = "select id,nickname,age,gender,zhenduan,avatar,pid,type from User where uid = "

+ uid

+ " and typelike '%"

+ value + "%'";

Cursor cursor = TCommUtil.getDb(this).execQuery(str);

cursor.moveToFirst();

for (int i = 0; i < cursor.getCount(); i++) {

  User userEnt = new User();

  userEnt.setId(cursor.getInt(0));

   ...

  cursor.moveToNext();

}

cursor.close();

  保存

User userEnt = new User();
TCommUtil.getDb(this).save(user);

List<User> userEnts = new ArrayList<User>();
TCommUtil.getDb(this).saveAll(userEnts);

  删除

TCommUtil.getDb(this).deleteAll(User.class);
TCommUtil.getDb(this).delete(User.class, WhereBuilder.b("id", "=", 3));

  修改 

userEnt.setType("3");
TCommUtil.getDb(this).update(userEnt, WhereBuilder.b("id", "=", 0), "type");


本文链接: Android orm 框架xUtils简介,转载请注明。

更多相关文章

  1. Android下的JNI创建多线程的方法
  2. 浅析Android(安卓)手机卫士设备管理权限锁屏
  3. 移动开发:Android(安卓)Media (Audio) Framework Analyse
  4. android ConcurrentHashMap的使用
  5. 整理 酷炫 Android(安卓)开源UI框架 引导图
  6. Android,一个函数实现Http Get 普通请求
  7. android 9.0接收静态广播
  8. 转载:android 源码 打包成apk的实现
  9. android 快速开发资料查询(陆续更新)

随机推荐

  1. Android(安卓)X库 BiometricPrompt 中 Cr
  2. 如何设置Android命令行环境变量
  3. Android(安卓)SQLite系列
  4. ubuntu搭建Android(安卓)NDK环境与Androi
  5. Mac android studio真机调试步骤
  6. 浅谈Android常用控件
  7. android 设置listview item选中背景色
  8. Android(安卓)混淆代码问题总结
  9. Android――动画专题研究
  10. SDK3.0 组件属性