热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dhroid-Dhdborm简化sqlite数据库操作

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

dhroid 数据库基本还是单表操作多,为了简单我只做了单表,那些级联,懒加载,什么的分两个操作区解决吧

初始化在application中基于ioc的配置

//数据库初始化
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 表示不参加持久化

属性支持基本数据类型

获取Dhdb对象下面我是用的ioc 你也可以制作单例

@Inject
DhDB db;

 

 


保存和更新
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);

 


查询(基本的sql你还是需要了解的啊)

List list=db.queryList(Student.class, ":name like ? or :num like ?","%name%","%num%");

 


:num 已:开头的占位符表示对象属性(这里的num属性对应数据库里的num_no)

这样就可以使用对象属性进行查询,而不用了解数据库
? 占位符指数据用后面的数据替换 方法支持多个参数
了解spring jdbctemplete 的应该很喜欢这样的写法


增删改查都都有了是不是很好用啊


推荐阅读
author-avatar
ds87vdsa
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有