xUtils中DbUtils的使用

1.创建数据库
/**
* 创建数据库
*
* @param context 上下文
* @return
*/
public static DbUtils geInstanceDbUtils(Context context) {
if (mDbUtils == null) {
DbUtils.DaoConfig daoConfig = new DbUtils.DaoConfig(context);
daoConfig.setDbName("mydata");//数据库名称
daoConfig.setDbVersion(1);//数据库版本号
//设置数据库更新的监听
daoConfig.setDbUpgradeListener(new DbUtils.DbUpgradeListener() {
//版本号不一致的时候会调用这个方法
@Override
public void onUpgrade(DbUtils db, int oldVersion, int newVersion) {
if (oldVersion != newVersion) {
//进行操作
}
}
});
mDbUtils = DbUtils.create(daoConfig);
}
return mDbUtils;
}
2.创建表
/**
* 创建表
*
* @param context
* @param c
*/
public void createTable(Context context, Class c) {
try {
getInstanceDbUtils(context).createTableIfNotExist(c);
} catch (DbException e) {
e.printStackTrace();
}
}
3.删除表
/**
* 删除表
*
* @param context
* @param c
*/
public void deleteTable(Context context, Class c) {
try {
getInstanceDbUtils(context).dropTable(c);
} catch (DbException e) {
e.printStackTrace();
}
}
4.增加数据
1)
/**
* 增加或修改数据-单条(如果没有表,会先创建表)
* 根据id进行判断,要增加的数据id在表中存在,修改数据,修改的数据会放在最后
* 要增加的数据在表中不存在,增加数据,增加的数据放在最后
*/
public void addOrUpdateData(Context context, T t) {
try {
getInstanceDbUtils(context).saveOrUpdate(t);
} catch (DbException e) {
e.printStackTrace();
}
}
2)
/**
* 增加或修改数据-多条(如果没有表,会先创建表)
* * 根据id进行判断,要增加的数据id在表中存在,修改数据,修改的数据会放在最后
* 要增加的数据在表中不存在,增加数据,增加的数据放在最后
*/
public void addOrUpdateAllData(Context context, List<T> list) {
try {
getInstanceDbUtils(context).saveOrUpdateAll(list);
} catch (DbException e) {
e.printStackTrace();
}
}
3)
/**
* 增加数据,如果要增加的数据id在表中已经存在,就不会添加进去了,也不会修改表中的数据
*
* @param context
* @param t
*/
public void addNoUpdateData(Context context, T t) {
try {
getInstanceDbUtils(context).save(t);
} catch (DbException e) {
e.printStackTrace();
}
}
4)
/**
* 增加所有数据,如果要增加的数据id在表中已经存在,就不会添加进去了,也不会修改表中的数据
* 要增加的数据id只要有一个在表中存在,整个List中的数据就都不会添加
*
* @param context
* @param list
*/
public void addNoUpdateAllData(Context context, List<T> list) {
try {
getInstanceDbUtils(context).saveAll(list);
} catch (DbException e) {
e.printStackTrace();
}
}
5 删除数据
1)
/**
* 删除指定条件下指定表中的数据
*/
public void deleteConditionTableData(Context context, Class c, WhereBuilder whereBuilder) {
try {
getInstanceDbUtils(context).delete(c, whereBuilder);
} catch (DbException e) {
e.printStackTrace();
}
}
2)
/**
* 删除单条数据
*
* @param context
* @param t
*/
public void deleteSingleData(Context context, T t) {
try {
getInstanceDbUtils(context).delete(t);
} catch (DbException e) {
e.printStackTrace();
}
}
3)
/**
* 删除多条数据
*
* @param context
* @param list
*/
public void deleteAllData(Context context, List<T> list) {
try {
getInstanceDbUtils(context).deleteAll(list);
} catch (DbException e) {
e.printStackTrace();
}
}
4)
/**
* 删除指定表中所有数据
*
* @param context
* @param c
*/
public void deleteTableAllData(Context context, Class c) {
try {
getInstanceDbUtils(context).deleteAll(c);
} catch (DbException e) {
e.printStackTrace();
}
}
6.查询数据
1)
/**
* 查询指定表的所有数据(查询到的是表中所有字段)
*/
public List<T> queryTableAllData(Context context, Class c) {
List<T> list = new ArrayList<>();
try {
list = getInstanceDbUtils(context).findAll(c);
} catch (DbException e) {
e.printStackTrace();
}
return list;
}
2)
/**
* 查询指定条件下表中所有字段的所有数据
*
* @param context
* @return
*/
public List<T> queryConditionAllFieldsData(Context context, Selector selector) {
List<T> list = new ArrayList<>();
try {
list = getInstanceDbUtils(context).findAll(selector);
} catch (DbException e) {
e.printStackTrace();
}
return list;
}
3)
/**
* 查询指定条件下表中指定字段的所有数据
*
* @param context
* @return
*/
public List<DbModel> queryConditionAppointFieldsData(Context context, DbModelSelector dbModelSelector) {
List<DbModel> list = new ArrayList<>();
try {
list = getInstanceDbUtils(context).findDbModelAll(dbModelSelector);
} catch (DbException e) {
e.printStackTrace();
}
return list;
}
4)
/**
* 查询指定条件下表中指定字段的第一条数据
*
* @param context
* @param dbModelSelector
* @return
*/
public DbModel queryConditionAppointFieldsFirstData(Context context, DbModelSelector dbModelSelector) {
try {
return getInstanceDbUtils(context).findDbModelFirst(dbModelSelector);
} catch (DbException e) {
e.printStackTrace();
}
return null;
}

对应github地址:https://github.com/ruxing1102/xUtils_DbUtils_Practice

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值