步骤:
(1). 创建数据表;
(2). DaoConfig 获取数据库的配置信息;
(3). 获取数据库实例: x.getDb(daoConfig);
(4). 数据库的增删改查。
上表中包含了db相关注解: 1 @Check check约束 2 @Column 列名 3 @Finder 一对多、多对一、多对多关系(见sample的Parent、Child中的使用) 4 @Foreign 外键 5 @Id 主键,当为int类型时,默认自增。 非自增时,需要设置id的值 6 @NoAutoIncrement 不自增 7 @NotNull 不为空 8 @Table 表名 9 @Transient 不写入数据库表结构 10 @Unique 唯一约束
注解属性
name (String) : 表名称 isId (boolean) : 是否为主键 autoGen (boolean) : 是否自增(默认: false) proprety (String) : 是否为空(默认: NOT NULL)
1 //本地数据的初始化 2 DbManager.DaoConfig daoConfig = new DbManager.DaoConfig() 3 .setDbName(“my_db.db”) //设置数据库名 4 .setDbVersion(1) //设置数据库版本,每次启动应用时将会检查该版本号, 5 // 发现数据库版本低于这里设置的值将进行数据库升级并触发DbUpgradeListener 6 .setAllowTransaction(true) //设置是否开启事务,默认为false关闭事务 7 .setTableCreateListener(new DbManager.TableCreateListener() { 8 @Override 9 public void onTableCreated(DbManager dbManager, TableEntity
DbManager db = x.getDb(daoConfig);
通过DbManager这类我们可以做如下操作: .getDaoConfig // 获取数据库的配置信息 .getDatabase // 获取数据库实例 .replace // 只有存在唯一索引时才有用 (慎重) .dropTable // 删除表 .addColumn // 添加一列 .dropDb // 删除数据库
增加的操作:
// bean bean = new bean("张三"); ArrayList<Object> list = new ArrayList<>();//可以集合的形式添加 list.add(new bean("李四")); list.add(new bean("王五")); try { db.save(list); db.saveOrUpdate(list); // 保存或更新实体类或者实体类的List到数据库,根据id对应的数据是否存在 7 db.saveBindingId(list); // 保存实体类或实体类的List到数据库,如果该类型的id是自动生成的,则保存完后会给id赋值 } catch (DbException e) { e.printStackTrace(); } **修改的操作**//第一中方式 bean bean = db.findById(bean.class, 2);//修改的id bean.setSname(“大脚”); db.update(bean,”name”); //第二种方式 try { List findAll = db.findAll(Person.class); for (Person person : findAll) { person.setAge(10); } db.update(findAll, “age”); //可以使对象、集合 8 } catch (DbException e) { }
**查询的操作** List<bean> list = db.findAll(bean.class);//查询所有 db.findById(person.class, 1);//通过主键的值来进行查找表里面的数据 3 db.findFirst(person.class);//返回当前表里面的第一条数据 4 List<person> findAll = db.findAll(person.class);//返回当前表里面的所有数据 5 db.findDbModelAll(new SqlInfo("select * from person where age > 25"));6 DbModel model = db.findDbModelFirst(new SqlInfo(“select * from person where age > 25”)); 7 model.getString(“age”);//model相当于游标 8 List findAll2 = db.selector(person.class).expr(“age >10”).findAll();//主要是用来进行一些特定条件的查找
“`
