GreenDao的使用
来源:互联网 发布:淘宝互刷信誉平台 编辑:程序博客网 时间:2024/06/05 07:30
LitePal数据库的使用
======================================
前言
因为项目需求的需要,会有用到数据库的需求,大家真知道安卓自带sqlLite 数据库,这种数据库的特点是轻小快速,能满足大部分安卓项目的需求,但是自己编写sql语句,难免会犯一些问题,并且对于数据量比较多的话,性能也是一个需要考虑的因素,我们公司的项目需要插入的数据有接近上万条,对于性能的要求还是比较高的,目前的话也有很多ORM型数据库可供开发者选择,目前最火的两种数据库框架比如LitePal,GreenDao,,两种数据库都是支持异步,相对而言litePal的配置要稍麻烦,本文详细介绍GreenDao数据库的使用
GreenDao的简单介绍
优点
性能最大化,内存开销最小化;
易于使用的API;
为Android进行高度优化;
异步操作,性能优化好;
多对一,一对多支持较好,这也是我选择它的主要原因依赖导入
project gradle 配置
> dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0' // add plugin }
module gradle 配置
> compile 'org.greenrobot:greendao:3.2.0' compile 'org.greenrobot:greendao-generator:3.2.0' > apply plugin: 'org.greenrobot.greendao'以下是自动生成java文件的配置,(如果不想每次都生成可以注释掉) > java.srcDirs = ['src/main/java', 'src/main/java-gen']
OK 写好Bean 然后manke project 就可以生成一些文件啦
基本的操作语法
.Entity 生成的表明
class 加 @Entity
. 必须要有个Id属性 且是String类型
> @Id private String Id; //seriesCode 作为主键
. 一对多,多对一
> @ToMany(referencedJoinProperty = "leaderId") private List<MovieBean> movieBeanList; //ALL TS 集 private String leaderId; // ToMany 一对多外键
在一Entit实例中ToMany中声明一个名字如learerId, 在另外一个Entity实例中加一个leaderId,就行啦
. 自定义字段类型
> GreenDao数据库支持八大基本数据库类型,也支持自定义类型 如下:加Convert public static class StateConverter implements PropertyConverter<HttpHandler.State, Integer> { //将Integer值转换成HttpHandler.State值 @Override public HttpHandler.State convertToEntityProperty(Integer databaseValue) { if (databaseValue == null) { return null; } for (HttpHandler.State state : HttpHandler.State.values()) { if (state.value() == databaseValue) { return state; } } return HttpHandler.State.WAITING; } //将HttpHandler.State值转换成Integer值 @Override public Integer convertToDatabaseValue(HttpHandler.State entityProperty) { return entityProperty == null ? null : entityProperty.value(); }}
创建数据库
> DatabaseContext databaseContext = new DatabaseContext(mContext, dir); DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(databaseContext, "4k.db", null); SQLiteDatabase db = helper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); daoSession = daoMaster.newSession(); m3u8Dao = daoSession.getM3U8BeanDao(); TSDao = daoSession.getMovieBeanDao();
over 完事
..异步操作
m3u8Dao.getSession().startAsyncSession().insertOrReplaceInTx(M3U8Bean.class, m3u8Bean); 其他的增删非常简单就不介绍了
阅读全文
1 0
- 关于greenDao的使用
- greenDao的使用教程
- GreenDAO的简单使用
- GreenDao的使用
- GreenDao的使用
- GreenDao的使用
- GreenDao的使用
- greendao的使用
- greenDAO的使用
- GreenDao的使用心得
- Greendao的使用
- GreenDao的使用详解
- GreenDao数据库的使用
- GreenDao的使用
- greenDAO的使用
- GreenDao的使用
- GreenDao的使用
- greenDAO的使用
- GLSL,CUDA语言概念以及VisualSFM限制
- 多线程创建同级目录和上下级目录
- ubuntu14.04上网
- Python实现一个简单的图片爬虫
- python中eval()函数官方文档的说明
- GreenDao的使用
- 开通博客
- 异步Socket通信编程的C#实现(2)
- 输入三条边并判断是否为三角形,若能构成三角形,指出其为何种三角形:等边、直角亦或者一般三角形
- 循环数比较
- ERROR: bootstrap checks failed max file descriptors [4096] for elasticsearch process likely too low,
- 存储器(一)
- HTML中可能使用为协议造成XSS 的属性
- .Net学习笔记-.Net基础2 C#面向对象基础3