数据库操作建议用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 type like '%"

+ 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 ORM框架TigerDB

    TigerDB是一个简单的Android ORM框架,它能让你一句话实现数据库的增删改查,同时支持实体对象的持久化和自动映射,同时你也不必关心表结构的变化,因为它会自动检测新增字段来更新你的表结构. ...

  2. android hook 框架 libinject2 简介、编译、运行

    Android so注入-libinject2 简介.编译.运行 Android so注入-libinject2  如何实现so注入 Android so注入-Libinject 如何实现so注入 A ...

  3. 最好的5个Android ORM框架

    在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...

  4. Android ORM 框架之 greenDAO 使用心得

    前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM  ...

  5. 推荐的Android ORM框架

    1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...

  6. 最受欢迎的5个Android ORM框架

    在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...

  7. Android ORM 框架之 greenDAO

    前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM  ...

  8. 对象关系映射(ORM)框架GreenDao简介和基本使用

    官网上的介绍,greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案. GreenDao特点 性能最大化,可能是Android平台上最快的ORM框架 易于使用的A ...

  9. android hook 框架 ADBI 简介、编译、运行

    Android so注入-libinject2 简介.编译.运行 Android so注入-libinject2  如何实现so注入 Android so注入-Libinject 如何实现so注入 A ...

随机推荐

  1. Scala高级语法

    一.隐式 implicit分类: (1)隐式参数 (2)隐式转换类型 (3)隐式类 特点:让代码变得更加灵活 (一)隐式参数 1.ImplicitTest object ImplicitTest { ...

  2. Highway Project---zoj3946(最短路SPFA)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5718 题意: 有n个点 m(n,m<=10^5)条路,现在要建 ...

  3. Python开发【模块】:sqlalchemy

    一.对象映射关系(ORM) orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却 ...

  4. mysql 数据操作 单表查询 练习

    查出所有员工的名字,薪资,格式为 <名字:egon>,<薪资:3000> mysql> select concat('<姓名:',name,'>') as n ...

  5. 在python中使用c语言编写的库

    本文使用的 cffi 官网网址:https://cffi.readthedocs.io/en/latest/overview.html cffi 自己本身使用了pycparser 这个库,是用pyth ...

  6. makefile中ifeq与ifneq dev/null和dev/zero简介 dd命令

    ifeq语法是ifeq "<arg1>;" "<arg2>;"  ,功能是比较参数“arg1”和“arg2”的值是否相同,相同时为1 i ...

  7. Exhibitor(zookeeper监控工具)

    具体看github上的文档,很详细https://github.com/soabase/exhibitor/wiki/Running-Exhibitor 一. 这个是Netflix出品的一个监控工具, ...

  8. Centos7使用yum下载rpm包而不执行安装

    yum-downloadonly是yum的一个插件,使得yum可以从RHN或者yum的仓库只下载包而不安装. 举例,从yum源下载ricci软件包 # yum install --downloadon ...

  9. C++ vector错误(1)

    在用C++的vector的时候,要保证访问的下标不能超过vector的size.否则出现msvcp60.dll 访问禁止.

  10. #C++初学记录 (第一次测试)(A - 复习时间 )

    练习题目一 (A-复习时间) 为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑.xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的 ...