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");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM