Android Xutils dbuils注記

4878 ワード

xUtils DbUtils概要-エンティティークラス注記要約
RockyZhangが1年前に発表したコメントは0件
まずは公式デモ
DbUtils db = DbUtils.create(this);
    	User user = new User(); //        User     id  ,     @ID     
    	user.setEmail("[email protected]");
    	user.setName("wyouflf");
    	db.save(user); //   saveBindingId          id  

    	...
    	//   
    	Parent entity = db.findById(Parent.class, parent.getId());
    	List<Parent> list = db.findAll(Parent.class);//      

    	Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test"));

    	// IS NULL
    	Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null));
    	// IS NOT NULL
    	Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null));

    	// WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset
    	List<Parent> list = db.findAll(Selector.from(Parent.class)
    	                                   .where("id" ,"<", 54)
    	                                   .and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30))
    	                                   .orderBy("id")
    	                                   .limit(pageSize)
    	                                   .offset(pageSize * pageIndex));

    	// op "in" ,            Iterable    (  List )
    	Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3}));
    	// op "between" ,            Iterable    (  List )
    	Parent test = db.findFirst(Selector.from(Parent.class).where("id", "between", new String[]{"1", "5"}));

    	DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")   name 
    	List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)"));
    	...

    	List<DbModel> dbModels = db.findDbModelAll(sql); //    sql  
    	db.execNonQuery(sql) //      sql
    	...

 
注釈のまとめ
1 .プライマリキー
    @Id //           id _id  ,          
    @NoAutoIncrement // int,long   id    ,            
    private int id;

2.フィールドを無視
  // Transient       ,      
    @Transient
    public String willIgnore;
    /** ---------------------------------*/
    public static String staticFieldWillIgnore; //             

3.表名
@Table(name = "parent", execAfterTableCreated = "CREATE UNIQUE INDEX index_name ON parent(name,email)") 
//name   , 
//execAfterTableCreated              sql。 parent   (name,email)   -->            。                     。

4.カラム名
@Column(column = "name") //                      
public String name;

5.外部キー
ディレイロード
    @Finder(valueColumn = "id", targetColumn = "parentId")
    public FinderLazyLoader<Child> children; //               ,        。
    
    @Foreign(column = "parentId", foreign = "id")
    public ForeignLazyLoader<Parent> parent;

ノンディレイロード
    @Finder(valueColumn = "id",targetColumn = "parentId")
    public Child children;
    
    @Foreign(column = "parentId", foreign = "isVIP")
    public List<Parent> parent;

1対多
    @Finder(valueColumn = "id", targetColumn = "parentId")
    private List<Child> children;
    
    @Foreign(column = "parentId", foreign = "id")
    public Parent parent;

コード#コード#
        Parent parent = new Parent();
        parent.name = "  " + System.currentTimeMillis();
        parent.setAdmin(true);
        parent.setEmail("[email protected]");
        
        DbUtils db = DbUtils.create(this.getActivity());
        db.configAllowTransaction(true);
        db.configDebug(true);

        Child child = new Child();
        child.name = "child' name";
        child.parent = parent;
        db.saveBindingId(child);//            id

6.その他
    @NotNull  //    
    @Check(value = "age>0") //age    0        "
    @Unique    //  
    public int age;