Android xUtils框架(一)DbUtils
來源:程序員人生 發布時間:2015-08-28 08:23:55 閱讀次數:5443次
框架地址:https://github.com/wyouflf/xUtils
需要的權限
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
創建數據庫
DaoConfig config = new DaoConfig(context);
config.setDbName("xUtils-demo"); //db名
config.setDbVersion(1); //db版本
DbUtils db = DbUtils.create(config);//db還有其他的1些構造方法,比如含有更新表版本的監聽器的
創建表
db.createTableIfNotExist(User.class); //創建1個表User
db.save(user);//在表中保存1個user對象。最初履行保存動作時,也會創建User表
刪除表
db.dropTable(User.class);
開啟事務
db.configAllowTransaction(true);
db相干Annotation
@Check check束縛
@Column 列名
@Finder 1對多、多對1、多對多關系(見sample的Parent、Child中的使用)
@Foreign 外鍵
@Id 主鍵,當為int類型時,默許自增。 非自增時,需要設置id的值
@NoAutoIncrement 不自增
@NotNull 不為空
@Table 表名
@Transient 不寫入數據庫表結構
@Unique 唯1束縛
1些經常使用方法
DbUtils db = DbUtils.create(this);
User user = new User(); //這里需要注意的是User對象必須有id屬性,或有通過@ID注解的屬性
user.setEmail("wyouflf@qq.com");
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"時,最后1個參數必須是數組或Iterable的實現類(例如List等)
Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3}));
// op為"between"時,最后1個參數必須是數組或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
...
db相干類庫結構:
com.lidroid.xutils.db.annotation
Check.java
Column.java
Finder.java
Foreign.java
Id.java
NoAutoIncrement.java
NotNull.java
Table.java
Transient.java
Unique.java
com.lidroid.xutils.db.converter
BooleanColumnConverter.java
ByteArrayColumnConverter.java
ByteColumnConverter.java
CharColumnConverter.java
ColumnConverter.java
ColumnConverterFactory.java
DateColumnConverter.java
DoubleColumnConverter.java
FloatColumnConverter.java
IntegerColumnConverter.java
LongColumnConverter.java
ShortColumnConverter.java
SqlDateColumnConverter.java
StringColumnConverter.java
com.lidroid.xutils.db.sqlite
ColumnDbType.java
CursorUtils.java
DbModelSelector.java
FinderLazyLoader.java
ForeignLazyLoader.java
Selector.java
SqlInfo.java
SqlInfoBuilder.java
WhereBuilder.java
com.lidroid.xutils.db.table
Column.java
ColumnUtils.java
DbModel.java
Finder.java
Foreign.java
Id.java
KeyValue.java
Table.java
TableUtils.java
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈