如何使用GreenDao的MyDaoGenerator建立GreenDao数据库框架?

  1. GreenDao的两种创建数据库框架方法
    (1)添加GreenDao依赖包和插件,建立实体类,如userBean,点击菜单栏的【build】键中的【make peoject】自动生成三个GreenDao文件,即DaoMaster,DaoSession,userBeanDao.
    (2)用MyDaoGenerator创建数据库框架,这也是我下面详细说明的方法,这是GreenDao的旧版生成器(旧版生成器官方文档链接)。在大多数情况下,我们建议使用新的Gradle插件,即方法(1),但是目前只有MyDaoGenerator支持某些高级功能,例如多模式(schemas)。我们使用多模式来创建数据表非常方便,尤其在项目中使用这种方式来建立GreenDao框架,使的开发人员使用GreenDao建表的学习成本非常低,可以说看一眼就会建表了,自动生成beans和3个DAO文件,不信你往下看。用MyDaoGenerator构建GreenDao的缺点就是,这个版本已经至少3年没更新了,不过不影响使用,我们项目中就是使用这种方法构建GreenDao框架的。

  2. 用MyDaoGenerator构建GreenDao框架
    (1)创建DAO文件的生成路径
    在【project】视图下的./app/src/main/路径下新建一个名为【java-gen】的java型文件夹,注意!!!一定不能随便建一个任意类型的文件夹,否则后面会出错,我就被坑了!
    【step1:】
    第一步:

【step2:】
第二步:
创建【java-gen】文件夹成功后,打开app下的build.gradle你会发现多了一行代码,如下图所示
在这里插入图片描述
这句话的意思是把【java-gen】下的.java文件也include到src路径中。我们继续在app/build.gradle的dependencies中添加GreenDao依赖库,即:implementation ‘de.greenrobot:greendao:1.3.7’,添加后如下图所示:
在这里插入图片描述
(2)下载并配置GreenDao的框架生成器


step1:


[]
下载链接,下载完解压,找到MyDaoGenerator文件夹,把它复制到到你的项目的根目录下,跟【app】平级,如下图所示:,压缩包中的其他文件都不需要。
在这里插入图片描述

step2:

把MyDaoGenerator配置到项目中,打开根目录下的【settings.gradle】,并查看编辑窗体最右侧的【Gradle】你会发现当前工程中只存在【app】这个应用程序,如下图:
在这里插入图片描述
我们需要把【MyDaoGenerator】也添加到到工程中,即:

include ':app',':MyDaoGenerator'

添加完后,点击sync同步,就报错了,报错如下:
在这里插入图片描述
错误提示输出路径错误,点击蓝色字体【Open File】,进入到MyDaoGenerator文件下的【build.gradle】,把路径改为我们之前建好的路径,还记得【java-gen】吗?没错就是它,之所以要改成src/main/java-gen,当然是方便我们调用数据库啦。

 mainClassName = "pl.surecase.eu.MyDaoGenerator"
    // edit output direction
   // outputDir = "../DaoExample/src/main/java-gen"
    outputDir = "../app/src/main/java-gen"

改完后点sync发现还报相同的错误,加一个【def】设置为默认路径就好了,再sync一下,就不会再报错了。

    mainClassName = "pl.surecase.eu.MyDaoGenerator"
    // edit output direction
   // outputDir = "../DaoExample/src/main/java-gen"
    //设置为默认路径
    def outputDir = "../app/src/main/java-gen"

到这为止,我们的GreenDao框架算是配置完了,你可以点开窗体最右侧的Gradle看一下,发现MyDaoGenerator已经include到工程中了。
在这里插入图片描述

step3:

打开MyDaoGenerator,如下图
在这里插入图片描述
修改里面的代码,建一个user表和一个book表:

package pl.surecase.eu;

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

/**
 *
 */
public class MyDaoGenerator {

    public static void main(String args[]) throws Exception {
        //初始化数据库
        //第一个参数是数据库版本号,第二个参数是为你生成的bean类所放的文件夹名
        Schema schema = new Schema(1, "beans");
        //设置生成的三个java文件的目录
        schema.setDefaultJavaPackageDao("daos");
        initUserBean(schema);
        initBookBean(schema);
        //第二个参数是输出路径,由于已经在MyDaoGrenerator中的build.gradle中配置过了,所以这里不再配置,
        new DaoGenerator().generateAll(schema, args[0]);
        //配置也可以
        //new DaoGenerator().generateAll(schema, "../app/src/main/java-gen");
    }

    /**
     * 建User表
     * @param schema
     */
    private static void initUserBean(Schema schema){
        Entity entity=schema.addEntity("UserBean");
        //添加id字段,设置为主键,自增长
        entity.addIdProperty().primaryKey().autoincrement();
        entity.addStringProperty("name");
        entity.addIntProperty("age");
        entity.addStringProperty("sex");
        entity.addStringProperty("tel");
    }


    /**
     * 建book表
     * @param schema
     */
    private static void initBookBean(Schema schema){
        Entity entity=schema.addEntity("BookBean");
        entity.addIdProperty().primaryKey().autoincrement();
        entity.addStringProperty("author");
        entity.addStringProperty(" publisher");
        entity.addDoubleProperty("price");
        entity.addBooleanProperty("lended");
        entity.addDateProperty("lendDate");
        entity.addDateProperty("returnDate");

    }

}

点击【run】自动生成been和dao。
在这里插入图片描述
运次成功后打开我们之间建的【java-gen】,你会发现beans和daos两个文件夹已经自动生成我们所需的文件。如下图:
在这里插入图片描述

以后再需要建表,就直接在Mygenerator中写建表方法,run一下就行,配置什么都不用管了是不是很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值