为了账号安全,请及时绑定邮箱和手机立即绑定

Android框架系列之GreenDao ( 一 )

标签:
Android

     Android开发中,你还在用SqliteOpenHelper进行数据库操作吗?你还在用Sqlite语句来执行每一个数据库操作吗? Oh, no!这绝对是一件体力劳动~

 当你觉得一直这样做很累的话,来体验下当下流行的ORM框架把!

     随着Android的飞速发展,出现了很多关于数据库操作的ORM框架,ormndroid、 ormlite、greendao等。ORM(Object Relation Mapping) ,对象关系映射,这是一种用于实现不同类型数据的转换的设计。然而这么多的ORM框架,经过各方面的对比,GreenDao就脱颖而出了。GreenDao无论从执行效率,还是API的轻便程度上来讲,都几乎是目前最好的框架了。本篇文章主要说说GreenDao的生成,这也是比较复杂的部分,刚开始看上去,可能会走很多弯路;生成可以了之后,调用就是手到擒来的事了~


    1、新建一个项目,这个项目作为我们GreenDao框架调用的工程项目,也就是我们开发用的Project. 在

         Android Studio中称之为Module.    

        1)  如果当前已经存在Project,那么在Project之下新建一个Module即可. file - new - new Module...

        2) 如果当前没有Project存在,那么需要先新建一个Project(相当于eclipse中的workspace)

        3)  如果你想把自动生成的代码放到自定义的包里,那么先建好包把!比如我在Module中新建greenDao包用于

         存放greenDao相关的代码,在greenDao下新建dao与bean两个分包,存放生成的dao与bean


        spacer.gif5bab8dd40001e46b04650361.jpg


    2、 新建一个Java工程,这个Java Project用于生成我们需要的代码

     1) 在上面的Project下,新建一个Java工程。file - new - new Module 这里选择Java Library 

     2) 新建的Java工程可能不能运行,需要配置一下,Run - Edit configrations - 点击左上角的‘’+‘’ - 

         选择Application,填上Name 和 MainClass选项基本就可以了,如果不可以下面会有提示。(很多新建的                    Module可能上面都打个x号,根据这条配置即可解决)


         5bab8dd500011b6f04640093.jpg

           5bab8dd50001a0fd10880705.jpg


    3、 在Java Project中,首先要在gradle.build中添加引用jar包

           compile 'org.greenrobot:greendao-generator:3.2.0'

           导入jar包之后,要使之生效,必须先clean一下或者rebuild一下,这样jar才会编译进程序中,然后可以在入            口类中添加自动生成的代码了!~ 先看整体图

          

5bab8dd60001c88609990765.jpg


   1) 首先需要一个Schema对象,可以称之为模型,通过Schema来创建表等等~ 

       //模式实例,指定<数据库版本><Bean实体生成目录>

    Schema schema = new Schema(DATABASE_VERSIONDATABASE_BEAN_PACKAGE); 

      该构造需要两个参数,从命名可以看出,参数1: 数据库版本   参数2: 生成的代码放在哪个包; 从上图可以看       出,这个包不是Java工程的包,而是需要生成的Module中,将生成的bean放在哪个包,这里是bean包。

     // 指定Dao类生成目录

schema.setDefaultJavaPackageDao(DATABASE_DAO_PACKAGE);

     通过以上方法来设置生成的Dao需要放在哪个包下,也不是Java工程下的包,而是调用的Module中。

     接下来需要用Schema对象来创建表了,上图中创建了一个示例表User


     private static void addNote_User(Schema schema) {

    Entity entity = schema.addEntity()entity.addIdProperty().notNull().primaryKey().autoincrement()entity.addStringProperty()entity.addStringProperty()}

     Schema通过getEntity得到一个表; 自动生成时,每一个表与一个实体类对应;参数与其说表名,也可以说是        实体类名ClassName of bean, 因为这里表名是可以另外设置的,通过setTableName方法,不过最好保持                TableName 与 BeanClassName一致即可。通过addPropoerty可以添加对应的列,一些Api还是比较方便的,如

     notNull()/primaryKey()/autoIncrement()等,对应Sqlite的语法。


     上面的建表过程已经到这里了,下面添加这句来执行生成代码

try {

    DaoGenerator().generateAll(schema)} (Exception e) {
    e.printStackTrace()}

     generateAll方法的参数2: 生成代码放在哪? 绝对路径,我这里是

private static final String GENERATOR_TARGET = "D:/workspace/Demos/greendao/src/main/java";

     这里注意,到main/Java就可以了,因为在哪个Package下,我们已经指定了~

    最后执行下这段代码,会看到Message中打印出来,已经生成了几个类,DaoMaster,DaoSecction等;然后去我     们的Module中看看,对应包下是不是生成你想要的代码了呢 ? 


    通过以上的步骤,我们可以通过Java Library生成对应的Bean类以及Dao类,还有DaoMaster,DaoSection等。

    下面来说下GreenDao如何来初始化 ? 


     首先要说明一点,GreenDao的初始化,建议放在Application中,防止反复的创建 ~ 

     5bab8dd60001010910140665.jpg

      

    1)  首先需要新建一个DevOpenHelper对象,这个对象是DaoMaster的一个内部类;在DaoMaster中执行了                  GreenDao的主要操作,是GreenDao的一个核心类;DevOpenHelper这个对象需要传入数据库的名字。

   2) 过程如上图所示,最后得到的是DaoSeccion,这是一个业务层的类,通过DaoSeccion可以getXXDao,也就是        你想创建XX表的操作类;通过这个XXDao,你就可以执行数据库的所有的操作了,是不是很简单呢 ?

   3) 这段初始化最好在Application中执行,获取的时候可以通过getInstance得到Applicaton的对象然后取出这个

       GreenDaoInitiallizer的对象来获取DaoSeccion;在执行数据库操作的时候getXXDao就好了~


     以上就是GreenDao整个创建过程,以及创建中遇到问题的解决办法; 通过它,你可以轻松的使用GreenDao来创建你需要的Table,Bean等,是不是很简单呢 ? 如果文章对你有帮助,请赞之,谢谢!!

       

     下篇文章,给大家详细说下如何使用GreenDao来执行数据库的基本操作以及GreenDao自带的一些比较方便的操作API,敬请期待。  

  


      



   

原文链接:http://www.apkbus.com/blog-192385-62609.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消