xUtils3.0使用介绍:数据库模块
2017-02-22 16:23
531 查看
步骤:
1. 创建数据表
2. DaoConfig 获取数据库的配置信息
3. 获取数据库实例: x.getDb(daoConfig);
4. 数据库的增删改查
在这里要强调的是,数据库里面表的创建的时间,只有在你对数据库里面的操作涉及到这张表的操作时,会先判断当前的表是否存在,如果不存在,才会创建一张表,如果存在,才会进行相应的CRUD操作。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上表中包含了db相关Annotation:
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
这个配置最好写在工具类中,方便调用:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
1
2
通过DbManager这个类我们知道主要它做了以下几件事情:
.getDaoConfig 获取数据库的配置信息
getDatabase 获取数据库实例
saveBindingId ;saveOrUpdate ; save 插入数据的3个方法(保存数据)
replace 只有存在唯一索引时才有用 慎重
.delete操作的4种方法(删除数据)
update操作的2种方法(修改数据)
find操作6种方法(查询数据)
dropTable 删除表
addColumn 添加一列
dropDb 删除数据库
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
通常用在数据库升级
1. 创建数据表
2. DaoConfig 获取数据库的配置信息
3. 获取数据库实例: x.getDb(daoConfig);
4. 数据库的增删改查
第一步,创建一张数据表
在这里要强调的是,数据库里面表的创建的时间,只有在你对数据库里面的操作涉及到这张表的操作时,会先判断当前的表是否存在,如果不存在,才会创建一张表,如果存在,才会进行相应的CRUD操作。@Table(name = "person") public class person { @Column(name = "id", isId = true, autoGen = true) public int id; @Column(name = "name") public String name;// 姓名 @Column(name = "age") public int age;// 年龄 @Column(name = "sex") public String sex;// 性别 @Column(name = "salary") public String salary;// 工资 @Override public String toString() { return "person [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", salary=" + salary + "]"; } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上表中包含了db相关Annotation:
@Check check约束 @Column 列名 @Finder 一对多、多对一、多对多关系(见sample的Parent、Child中的使用) @Foreign 外键 @Id 主键,当为int类型时,默认自增。 非自增时,需要设置id的值 @NoAutoIncrement 不自增 @NotNull 不为空 @Table 表名 @Transient 不写入数据库表结构 @Unique 唯一约束1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
第二步:DaoConfig 获取数据库的配置信息
这个配置最好写在工具类中,方便调用:private static DaoConfig daoConfig; public static DaoConfig getDaoConfig(){ if(daoConfig==null){ daoConfig = new DbManager.DaoConfig() .setAllowTransaction(true)//设置允许开启事务 .setDbName("test.db")//创建数据库的名称 // 不设置dbDir时, 默认存储在app的私有目录. .setDbDir(new File("/sdcard")) // "sdcard"的写法并非最佳实践, 这里为了简单, 先这样写了. .setDbVersion(1)//数据库版本号 .setDbOpenListener(new DbManager.DbOpenListener() { @Override public void onDbOpened(DbManager db) { // 开启WAL, 对写入加速提升巨大 db.getDatabase().enableWriteAheadLogging(); } }) .setDbUpgradeListener(new DbManager.DbUpgradeListener() { @Override public void onUpgrade(DbManager db, int oldVersion, int newVersion) { // TODO: ... //db.addColumn(...); // db.dropTable(...); // ... // or // db.dropDb(); } }); } return daoConfig; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
第三步:获取数据库实例
DaoConfig daoConfig = xUtils.getDaoConfig(); db = x.getDb(daoConfig);1
2
1
2
第四部步:数据库的增删改查
通过DbManager这个类我们知道主要它做了以下几件事情:.getDaoConfig 获取数据库的配置信息
getDatabase 获取数据库实例
saveBindingId ;saveOrUpdate ; save 插入数据的3个方法(保存数据)
replace 只有存在唯一索引时才有用 慎重
.delete操作的4种方法(删除数据)
update操作的2种方法(修改数据)
find操作6种方法(查询数据)
dropTable 删除表
addColumn 添加一列
dropDb 删除数据库
增:
try { List<person> list = new ArrayList<person>(); for (int i = 0; i < 1; i++) { person person = new person(); person.name = "wingli"+i; person.age = 18; person.salary = "1000元"; person.sex = "男"; list.add(person); } db.save(list);//保存实体类或实体类的List到数据库 // db.saveOrUpdate(list);//保存或更新实体类或实体类的List到数据库, 根据id对应的数据是否存在 // db.saveBindingId(list);保存实体类或实体类的List到数据库,如果该类型的id是自动生成的, 则保存完后会给id赋值 } catch (DbException e) { // TODO Auto-generated catch block e.printStackTrace(); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
查:
try { //1 db.findById(person.class, 1);//通过主键的值来进行查找表里面的数据 //2 db.findFirst(person.class);//返回当前表里面的第一条数据 //3 List<person> findAll = db.findAll(person.class);//返回当前表里面的所有数据 //4 // db.findDbModelAll(new SqlInfo("select * from person where age > 25")); DbModel model = db.findDbModelFirst(new SqlInfo("select * from person where age > 25")); model.getString("age");//model相当于游标 //5 List<person> findAll2 = db.selector(person.class).expr("age >10").findAll();//主要是用来进行一些特定条件的查找 } catch (DbException e) { // TODO Auto-generated catch block e.printStackTrace(); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
删
try { //1 db.delete(person.class);//该方法是删除表中的全部数据 //2 db.deleteById(person.class, 12);//该方法主要是根据表的主键(id)进行单条记录的删除 //3 db.delete(person.class, WhereBuilder.b("age", ">","20"));//根据where语句的条件进行删除操作 //4 List<person> findAll = db.selector(person.class).expr("age > 20").findAll(); db.delete(findAll);//根据实体bean进行对表里面的一条或多条数据进行删除 } catch (DbException e) { e.printStackTrace(); }1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
改:
try { List<Person> findAll = db.findAll(Person.class); for (Person person : findAll) { person.age = 1; person.salary = "qqqqq"; } db.update(findAll, "age");//可以使对象、集合 } catch (DbException e) { // TODO Auto-generated catch block e.printStackTrace(); }1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
添加一个字段:
通常用在数据库升级db.addColumn(Person.class, "count");
相关文章推荐
- xUtils3.0使用介绍:数据库模块
- xUtils3.0使用介绍:注解模块
- xUtils3.0使用介绍:图片加载模块
- xUtils3.0使用介绍:网络模块
- xUtils3.0使用介绍:图片加载模块
- xutils2数据库模块的使用介绍
- xUtils3.0使用介绍
- 记一次使用xutils3的数据库模块的教训org.xutils.ex.DbException: <init> []
- 微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
- 使用Tomcat-5.5.20配置数据库连接池详细介绍
- 模块包的使用介绍
- 数据库开发中类模块的使用
- 介绍和使用Berkeley DB Java Edition(嵌入式数据库)
- 微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇
- [EntLib]微软企业库5.0 学习之路——第九步、使用PolicyInjection模块进行AOP—PART3——内置Call Handler介绍
- 微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——中篇
- 微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
- 数据库索引介绍及使用
- lighttpd的安装和基本模块的使用介绍
- 火车头数据库发布模块编辑器的使用