自动生成Android ContentProvider、Database相关代码

新写的Android应用里,要将数据保存到数据库中,然后通过ContentProvider来访问。

这就要创建各个数据库表、每个表中的列,数据库创建好后还要根据每个表来创建一个对应的ContentProvider Uri访问函数。数据库表有点多,有9个,又要一个又一个枯燥无味的复制、粘贴、修改(表名、列名、Uri type 等)。

忽然想到,应该有闲人做了工具,用来自动生成ContentProvider相关代码,我只要把数据库设计好就行了。于是开始Google,于是找到两个工具:

  1. SQLite Expert
  2. Android ContentProvider Generator

SQLite Expert Personal Edition

SQLite Expert的功能比较好,可以用来设计SQLite数据库,它的帮助文档也很详细。其Personal Edition是免费的,Professional Edition是收费的,我等穷屌丝用Personal Edition就行了。

Android ContentProvider Generator

这个东东用来生成ContentProvider相关代码,很方便,很简单。唯一麻烦的是,它的输入文件都是JSON,需要手动从数据库的SQL语句转成JSON配置,当然也可以写一个脚本来干这个事情。我这次的开发所用到的数据库表不多,所以就手动修改了。

需要注意的是

  1. 数据库表的JSON配置文件里,不需要指定 id 字段,最后生成的代码里会自动为每张表增加 _id 字段;
  2. 如果有FOREIGN KEY要REFERENCES其他表的 _id 字段,直接写成类似下面的例子即可,其中 "name" 的值可以随便取:
        "constraints": [
            {
                "name": "peoples__companys",
                "definition": "FOREIGN KEY (company_id) REFERENCES companys (_id) ON DELETE CASCADE ON UPDATE CASCADE"
            }
        ]
    
  3. 最后生成的代码里,会把表名、字段名存成相应的变量名,但可悲的是,JSON配置里的 "constraints" 里的表名、字段名却没有自动替换,只是简单的转成大写。这个bug就需要我们自己手动修改了。希望Android ContentProvider Generator下一版本能够修正这个BUG。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值