android开发中sqlite代码生成器

  大家好,我是汤博乐,这是我在简书上第一篇android开发技术文章。写文之前想来想去不知道写什么,最后还是推荐一款我自己开发的sqlite数据库访问代码生成器。如果你觉得我的博文写得不错,还望您能持续关注我的博文。当然也希望您能多提提意见,让我有更多机会进步。

1. 生成器简介

    这款代码生成器与市面上的ORM库(ORMLite、GreenDao、DBFlow等)有些不同。通常情况下,我们使用ORM库的时候,都要通过代码方式去构建数据库表格,比如ORMLite和DBFlow通过反射去逐一构建每一张表格,或者像GreenDao一样使用其子工程GreenDaoGenerator编写代码去逐一构建每一张表格。而这款代码生成器则是通过解析现有的sqlite数据库文件而后再生成访问该数据库文件的java代码(包括数据表实体类,数据访问API)。这样的好处是,我们只要使用图形界面工具(比如SQLteStudio、PowerDesigner)设计出sqlite数据库后使用它来解析该数据库文件,就可以轻松得到访问该数据库的java代码。这对于有大量数据表操作的应用来说是很方便的。


2. 如何使用

    到该代码生成器github项目主页Clone源代码后,用IntelliJ开发工具(如果你使用的是Eclipse,请自行拷贝源码)打开项目,把你的目标sqlite数据库放在项目根目录下(源码中有一个测试Unix.db数据库)。然后修改入口Main函数下的四行代码,具体看下面实例:


targetDB 是你的目标数据库,它放在工程根目录下;modelPackage是数据表映射的实体类包名;apiPackage是数据表访问接口类包名;outDir是生成代码的存放目录,会在工程根目录生成。

修改完后,run一下项目,这样就会在项目根目录下的文件夹gen-src生成目标代码。最后你把目标代码复制到你的android工程下即可。是不是很便捷?反正我觉得真他妈的便捷。


2. 特点

(1)基于SQLiteOpenHelper,支持任何复杂SQL语句。多表联合的复杂查找操作支持很到位。此外,对于要支持加密库sqlcipher,稍微一下SQLiteOpenHelper包名即可。

(2)支持视图,支持视图,支持视图,重要的事情说三遍。

(3)API接口包含了最常用的增删改查接口,很容易修改和扩展

(4)自动生成数据表映射实体类(POJO类),数据访问API,总代码量相对于GreenDao减少60%


生成实体类代码截图

3. 数据访问API使用示例

   以下截图是所生成访问API。对于目前这部分代码,希望读者能多提提意见。具体代码请参照github项目中的AndroidExample。


4. 注意

(1)目标sqlite数据库表中primary key必须命名为"id"(id,Id,ID都行,只要按照2中命名要求即可)

(2)目标sqlite数据库所有表名命名要规范严格按照Pascal(如:CompanyDeparment) 、匈牙利(Score)(如:company_deparment)、 Camel(如:companyDeparment)三种格式中的某一种规范(不允许混合使用,只能三选一)。修改入口Main函数代码,指定你的数据表名编码格式和数据列名编码格式,如图:


转载请注明出处:http://www.jianshu.com/p/1872009db0ce

代码生成器项目主页:https://github.com/thepacific/sqlite-generator-android

微信公众号名称:南国IT技术园

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 137,923评论 20 590
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 86,936评论 14 122
  • 文学or事业阅读 20评论 8 1
  • localStorage是Html5新加入的特性,这个特性主要用来做浏览器本地存储 一、判断浏览器是否支持loca...
    陈川Lethe阅读 53评论 0 0
  • 今天是素心源里每周一次的亲子读经班,周老师不在由我带班。第一次上这个课程也是自我一次挑战! 原本想着按着流程一个个...
    徐金秋阅读 104评论 3 4