zoukankan      html  css  js  c++  java
  • Android orm 框架xUtils简介

      数据库操作建议用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");
  • 相关阅读:
    转:简单例子说明梯度下降、momentum和学习率衰减
    poj 2112 Optimal Milking(二分+floyd+最大流)
    poj 2112 Optimal Milking(二分+floyd+最大流)
    poj-2728Desert King(最优比率生成树)
    poj-2728Desert King(最优比率生成树)
    C
    C
    cf 567B
    cf 567B
    Codeforces Round #451 (Div. 2) c
  • 原文地址:https://www.cnblogs.com/lsc183/p/4453724.html
Copyright © 2011-2022 走看看