noel0217 发表于 2016-12-1 10:42:39

Dhdb 简化sqlite数据库操作--dhroid文档

  android数据库其实使用的不多,dhroid框架中的网络缓存使用了数据库我就写了也写了一个数据库操作工具
  dhroid 数据库基本还是单表操作多,为了简单我只做了单表,那些级联,懒加载,什么的分两个操作区解决吧
  初始化在application中

//数据库初始化
DhDB db=IocContainer.getShare().get(DhDB.class);
db.init("dhdbname", Const.DATABASE_VERSION);
  如果你的数据库在sd卡上,你可以    
  db.initInSD("文件夹位置", "dhdbname", Const.DATABASE_VERSION);
  bean定义

@Entity(table="student")
public class Student {
@Column(pk=true)
public Long id;
public String name;
@Column(name="num_no")
public String num;
@Column(name="create_time")
public Date createTime;
public int age;
public int sex;
public boolean dangyuang;
@NoColumn
public String temp;
//setget...
}
  @Entity(table="student") 表示这个对象进行持久化,可以不添加,默认都可以,默认对象名和表名相同 
  默认的属性都会被持久化的默认列名和属性名相同
  @Column(pk=true)定义主键
  @Column(name="num_no")定义列名
  @NoColumn 表示不参加持久化
  属性支持基本数据类型
  保存和更新

if(student == null){
student=new Student();
isnew=true;
}
student.setName(nameV.getText().toString());
student.setNum(numV.getText().toString());
student.setSex(Integer.parseInt(sexV.getText().toString()));
student.setAge(Integer.parseInt(ageV.getText().toString()));
student.setDangyuang(dangyuanV.getText().toString().equals("1")?true:false);
student.setCreateTime(new Date());
if(isnew){
db.save(student);
}else{
db.update(student);
}
  删除

db.delete(student);
  加载

student=db.load(Student.class, id);
  查询(基本的sql你还是需要了解的啊)

List<Student> list=db.queryList(Student.class, ":name like ? or :num like ?","%name%","%num%");
  :num  已:开头的占位符表示对象属性(这里的num属性对应数据库里的num_no)
  这样就可以使用对象属性进行查询,而不用了解数据库  
  ?  占位符指数据用后面的数据替换  方法支持多个参数
  了解spring jdbctemplete 的应该很喜欢这样的写法
  增删改查都都有了是不是很好用啊
页: [1]
查看完整版本: Dhdb 简化sqlite数据库操作--dhroid文档