Android Xutils dbuils注記
4878 ワード
xUtils DbUtils概要-エンティティークラス注記要約
RockyZhangが1年前に発表したコメントは0件
まずは公式デモ
注釈のまとめ
1 .プライマリキー
2.フィールドを無視
3.表名
4.カラム名
5.外部キー
ディレイロード
ノンディレイロード
1対多
コード#コード#
6.その他
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;