最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明

排版不佳点击查看原文

GreenDao3.2简介


Android开发中我们或多或少都会接触到数据库。Android中提供了一个占用内存极小的关系型数据库-SQLite。虽然Android系统中提供了许多操作SQLite的API,但是我们还是需要手动去编写SQL语句,这经常会出现一些莫名其妙的问题。所以便出现了许多ORM(对象关系映射)框架。其中比较著名的有GreenDao等。

1.性能最大化,可能是Android平台上最快的ORM框架

2.易于使用的API

3.最小的内存开销

4.依赖体积小

5.支持数据库加密

6.强大的社区支持

GreenDao3.2使用本地数据库


GreenDao基本使用简单,但是不注意的话也是很难发现问题。下面直接进入主题:

数据库的表格式如下:

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第1张图片

数据库在项目里面的位置:

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第2张图片

拷贝数据库代码


我们确定了需要拷贝的路径databasepath并创建了异步任务mCopyDataBaseTask;

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第3张图片

接下来我们定义了两个方法getDatabaseFilepath、getDatabaseFile,前者是获取了将要拷贝的目录,后者是获取了数据库文件的路径。

经过一系列的判断语句我们最终执行mCopyDataBaseTask.execute(sfile);

没错,我们开始了异步任务,传入了数据库文件的路径。

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第4张图片
最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第5张图片

我们来到AsyncTask,在doInBackground方法中我们通过getAssets方法来获取AssetManger的引用(基础薄弱的这里有必要解释一下:assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。来自Resources和Assets 中的文件只可以读取而不能进行写的操作。)通过open方法我们得到字节流并写入到指定的目录文件中完成拷贝。

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第6张图片

至此AsyncTask任务执行完成。

GreenDao的Bean类


最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第7张图片

值得注意的细节在Bean类Entity注解:

1.nameInDb:在数据库中使用的别名,默认使用的是实体的类名,需要根据我们将要查询的表面赋值。

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第8张图片

接下来我们创建了数据库实体类TvTable,@Property:设置一个非默认关系映射所对应的列名,默认是使用字段名,例如:@Property(nameInDb = "name")。

重要的地方我们再说一次:

1.字段BRAND_CN,@Property(nameInDb = "BRAND_CN")这里一定要指定为“BRAND_CN”列名不然greenDao自动生成的列名为BRAND__CN注意会多了一个下划线,这个很重要。自动生成规则为首字母大写驼峰使用下划线代替,如nameEn--->Name_En;下面的MODEL不需要是因为自动生成的还是这个名字。很重要。

2.字段ID,注意这里一定要有 @Property(nameInDb = "ID")这个属性,数据类型为Long或者long,很重要。

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第9张图片

最后我们创建了queryInfraredDB查询方法,通过queryRawCreate方法接受sqlRaw-sql语句,获得Query。

遍历Query从而获取数据库每个字段值。

欢迎长按下图-识别图中二维码或者扫一扫,搜索微信公众号:黄君华。关注我的公众号:

最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明_第10张图片

如果你有不同意见或建议或者有好的技术文章想和大家分享欢迎投稿,可以把你的文章使用附件的形式发送到我的邮箱[email protected]

谢谢阅读!

你可能感兴趣的:(最快的ORM框架GreenDao3.2—拷贝本地数据库、 Property注解说明)