dhroid - Dhdb orm简化sqlite数据库操作
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<Student> list=db.queryList(Student.class, ":name like ? or :num like ?","%name%","%num%");
:num 已:开头的占位符表示对象属性(这里的num属性对应数据库里的num_no)
这样就可以使用对象属性进行查询,而不用了解数据库
? 占位符指数据用后面的数据替换 方法支持多个参数
了解spring jdbctemplete 的应该很喜欢这样的写法
增删改查都都有了是不是很好用啊
dhroid - Dhdb orm简化sqlite数据库操作的更多相关文章
- C# SQLite 数据库操作
C# SQLite 数据库操作学习 运行环境:Window7 64bit,.NetFramework4.61,C# 7.0 参考: SQLite 官网 SQL As Understood By SQL ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- [python]用Python进行SQLite数据库操作
用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ ]: u ...
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- iOS 中SQLite数据库操作
在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...
- sqlite数据库操作详细介绍 增删改查,游标
sqlite数据库操作详细介绍 增删改查,游标 本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code package com.example ...
- 实验八 sqlite数据库操作
实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016年5月3日 实验项目名称 SQLite数据库操作 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 ...
随机推荐
- vue-router 2 跳转失败原因
axios.post('/internal/user/login_from_mobile ',{ mobile: this.logPrefix+this.formInline1.mobile, pas ...
- django时区设置(timezone)
django时区设置(timezone): 默认: TIMEZONE:'America/Chicago'(以前的版本,现在的版本默认的都是UTC时间.) Chicago时间,为UTC/GMT -6 小 ...
- java程序员如何编写更好的单元测试的7个技巧
详解 cppunit进行单元测试 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函 ...
- beego + websocket 向页面推送数据
https://blog.csdn.net/u012210379/article/details/72901387 https://blog.csdn.net/u012210379/article/d ...
- swagger的说明、配置及使用
一.What is swagger? 官方介绍:Swagger是一个规范且完整的框架,提供描述.生产.消费和可视化RESTful Web Service.专业角度:Swagger是由庞大工具集合支撑的 ...
- iOS AppsFlyer的使用注意事项
AppFlyer 是近期比較火的一款广告追踪统计工具,当然统计的功能友盟也能够实现,而appsflyer更是具有定向投放,是app跳转到对应的页面. 详细的:当点击广告的时候,假设没有安装应用.则会跳 ...
- SpringBoot------8080端口被占用抛出异常
异常信息: The Tomcat connector configured to listen on port failed to start. The port may already be in ...
- 让树莓派自动上报IP地址到邮箱,二代B
由于我使用树莓派的场景大多数是在没有显示器.只用terminal连接它的情况下,所以,它的IP地址有时会在重启之后变掉(DHCP的),导致我无法通过terminal连接上它.然后我又要很麻烦地登录路由 ...
- iOS 解决UIScrollView布局问题(布局受statusBar和NavigationBar影响)
iOS APP中有一个非常好用的功能,那就是当我们在滚动一个UIScrollView滚动了很远很远的时候,假如我们想让UIScrollView回到顶部,我们绝大多数人的做法就是慢慢慢慢的滚动UIScr ...
- 【django】Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
问题描述:启动django服务时出现“Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试.”的错误 问题原因:8000端口被占用了 解决办法:默认启动的 ...