Android高级之xUtils框架(四):DBUtils的用法
来源:互联网 发布:手机手柄连接软件 编辑:程序博客网 时间:2024/06/10 07:32
DBUtils用于数据库的创建,管理和操作。
DBUtils的基本思想:把类映射成了一张表,把属性映射成了一个字段,把对象映射成了一条数据,这些都是通过反射去完成的。
一.DBUtils的初始化:
DBUtils和BitmapUtils道理相同,由于一个项目中只会存在一个数据库,所以也要设计为单例模式,因此定义一个帮助类,并且在整个看项目运行之前对他初始化,也就是在Application中,主要代码代码如下:
1.1.帮助类:设计单例模式
public class DBHelper {
private static DbUtils utils;
/*初始化DBuitls的方法,在Application中初始化*/
public static void init(Context context){
utils = DbUtils.create(context);
// 开启事物,这样可以提高效率,因为每次执行语句都有一个开启事务和关闭事务
utils.configAllowTransaction(true);
// 设为true的时候,可以在LogCat中看到所执行的语句信息
utils.configDebug(true);
}
public static DbUtils getUtils(){
return utils;
}
}
1.2.初始化:在BaseApplicaiton的onCreate()中:
public class BaseApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
DBHelper.init(this);
}
}
1.3.在MainActivity中得到DBUtils对象:
utils = DBHelper.getUtils();
二。实体类
在DBUtils中,必须要有实体类,并且实体类中必须有无参构造,这是因为DBUtils的需求,而在定义实体类时,需要有注解,注解的作用就是在项目完成后混淆的时候用到,如果没有注解,则混淆时会报错,通过注解可以对DBUtils进行规定,代码如下:
//指定表明,可以为空,默认是包名.类名.实体类
@Table(name = "Entities",execAfterTableCreated = "")
public class Entities {
// 指定主键,则id不再默认是主键了
@Id(column="key")
private int id;
@Column(column = "name")
@NotNull
private String name;
//这里必须要有一个无参构造函数,DBUtils需要
public Entities() {
}
public Entities(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Entities{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
三。以上工作完成后,就可以进行CRUD操作了
3.1.添加数据:
3.1.1.插入一条信息,当实体类中有id或者_id时,会默认为主键
utils.save(new Entities(id,name));
3.1. 2.插入一个实体类集合
Utils.saveAll(List<Entities>);
3.2.修改数据:
3.2.1.会根据id判断是否存在,如存在就不会保存,若不存在就会添加
Utils.saveOrUpdate(Entities);
3.2.2.整个实体类集合
Utils.saveOrUpdateAll(List<Entities>)
3.3.查询数据:
3.3.1. 查询所有的数据,返回值为List<T>
try {
List<Entities> all = utils.findAll(Entities.class);
} catch (DbException e) {
e.printStackTrace();
}
3.3.2条件查询
/*
* 1参:字段名
* 2参:操作符(<,>,=,like)
* 3参:查询的值
*/
WhereBuilder builder = WhereBuilder.b("name", "like", "张三");
Selector selector = Selector.from(Entities.class);
try {
List<Object> all = utils.findAll(selector);
Log.i("TAG",all.toString());
} catch (DbException e) {
e.printStackTrace();
}
3.4 删除数据:
3.4.1. 删除表及表中所有数据
utils.deleteAll(Entities.class);
3.4.2. 删除表中id=1的数据(一行)
utils.delete(new Entities(1,"张三"));
3.4.3. 按指定条件删除
WhereBuilder builder = WhereBuilder.b("name", "like", "李四");
utils.delete(Entities.class,builder);
还有几个重载方法,可根据提示掌握,这里就不一一说了。
以上,就是DBUilts主要用法和大部分知识点了,对DBUtils的这种思想需要加以理解。
- Android高级之xUtils框架(四):DBUtils的用法
- Android高级之xUtils框架(四):DBUtils的用法
- android高级框架xUtils之DbUtils
- Android高级之xUtils框架(一):ViewUtils的用法
- xUtils框架之DbUtils
- Android Xutils框架使用之DBUtils
- Android xUtils框架(一) DbUtils
- Android xUtils框架(一)DbUtils
- Android xUtils框架(一) DbUtils
- xUtils DButils的详细用法
- Android:开源框架xutils介绍之 DbUtils
- Android高级之xUtils框架(二):HttpUtils
- Android高级之xUtils框架(三)BitmapUtils
- android高级框架xUtils之ViewUtils
- android高级框架xUtils之BitmapUtils
- android高级框架xUtils之HttpUtils
- Xutils框架中关于DbUtils的使用
- xUtils框架—DbUtils
- 关于memset赋值的问题
- CV期刊一游
- 数据结构实验之栈四:括号匹配
- 重在交流、分享、锻炼和交融
- UI第四天:事件处理
- Android高级之xUtils框架(四):DBUtils的用法
- 数据结构实验之队列一:排队买饭
- AS(AndroidStudio)签名
- VC静态库的创建和使用
- 元组、列表、字典的基础知识和比较(二)
- 基本类型的递减排序简单实现
- aidl 中通过RemoteCallbackList 运用到的回调机制: service回调activity的方法
- 数据结构实验之二叉树的建立与遍历
- 传统存储老矣,新兴存储能当大任否?