Generator自动生成DAO和POJO代码

 

一  添加相关插件

<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>${generator.version}</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

 

二 添加pom依赖 版本为 1.3.7

<dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>${generator.version}</version>
        </dependency>

 

三  添加配置文件 datasource.properties

注意:

1- com.mysql.cj.jdbc.Driver

2- db.url需要添加时区设置 serverTimezone=UTC

db.driverLocation =  D:\\WorkSpace\\repository\\mysql-connector-java-8.0.7-dmr.jar
db.driverClassName = com.mysql.cj.jdbc.Driver
db.url = jdbc:mysql://localhost:3306/ebuy?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
db.username = root
db.password = root55

 

四 添加核心配置文件 generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<!--详细使用文档请参见:https://blog.csdn.net/u014365133/article/details/78884751-->
<generatorConfiguration>
    <!--导入属性配置 (0个或1个)-->
    <properties resource="datasource.properties"/>

    <!--指定特定数据库的jdbc驱动jar包的位置 (0个或多个)-->
    <!-- classPathEntry只在下面这两种情况下才有效:-->
    <!-- 1- 当加载 JDBC 驱动内省数据库时 -->
    <!-- 2- 当加载根类中的 JavaModelGenerator 检查重写的方法时 -->
    <!-- 如果你需要加载其他用途的jar包,classPathEntry起不到作用 -->
    <classPathEntry location="${db.driverLocation}"/>


    <!--context 指定生成一组对象的环境 (1个或多个)-->

    <!--targetRuntime: 此属性用于指定生成的代码的运行时环境。该属性支持以下可选值:(一般情况下使用默认值即可,有关这些值的具体作用以及区别请查看中文文档的详细内容。)-->
    <!--MyBatis3- 这是默认值 -->
    <!--MyBatis3Simple- 不生成和Example查询有关的内容,避免在后面的<table>中逐个进行配置 -->
    <!--Ibatis2Java2-->
    <!--Ibatis2Java5-->

    <!--defaultModelType: 可选参数,定义了MBG如何生成**实体类**  -->
    <!--conditional- 如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。*-->
    <!--flat- 每一张表只生成一个实体类。这个实体类包含表中的所有字段。**这种模型最简单,推荐使用-->
    <!--hierarchical- 如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系-->

    <!--introspectedColumnImpl 扩展类,指定完全限定名即可实现自定义扩展 https://www.jianshu.com/p/b6d981b25409-->
    <context id="default" targetRuntime="MyBatis3" defaultModelType="flat">
        <!--!!!! context 的以下子元素有严格的顺序要求!!!!!!-->

        <!--当表名或者字段名为SQL关键字的时候,可以设置该属性为true,MBG会自动给表名或字段名添加``符-->
        <property name = "autoDelimitKedywords" value="true"/>
        <property name = "beginningDelimiter" value="`"/>
        <property name = "endingDelimiter" value="`"/>
        <!-- Java文件的编码 + 格式化java + 格式化XML -->
        <property name="javaFileEncoding" value="UTF-8"/>
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>

        <!--<plugin></plugin>-->

        <!-- optional,旨在创建class时,对注释进行控制,可以自定义一个扩展类 -->
        <commentGenerator type="spring.cloud.service.config.MyCommentGenerator">
            <!--阻止**生成的注释包含时间戳-->
            <property name="suppressDate" value="true"/>
            <!--阻止**生成注释-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--jdbc的数据库连接 -->
        <jdbcConnection
                driverClass="${db.driverClassName}"
                connectionURL="${db.url}"
                userId="${db.username}"
                password="${db.password}">
        </jdbcConnection>


        <!-- 非必需,该属性可以控制是否强制DECIMAL和NUMERIC类型的字段转换为Java类型的java.math.BigDecimal,默认值为false:
        默认情况下的转换规则为:
        如果精度>0或者长度>18,就会使用java.math.BigDecimal
        如果精度=0并且10<=长度<=18,就会使用java.lang.Long
        如果精度=0并且5<=长度<=9,就会使用java.lang.Integer
        如果精度=0并且长度<5,就会使用java.lang.Short

        如果设置为true,那么一定会使用java.math.BigDecimal
        -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!--
        Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
        targetPackage- 指定生成的model生成所在的包名
        targetProject- 指定在该项目下所在的路径
        添加 <property name="trimStrings" value="false"/>,可以对CHAR类型的列做trim操作
        enableSubPackages- 属性可以将pojo分子包放置
        immutable- 生成的pojo是否可变?(没有setter方法)
        -->
        <javaModelGenerator targetPackage="spring.cloud.service.pojo" targetProject="src/main/java"/>

        <!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
        <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources"/>

        <!--
        客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
        type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
        type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
        type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
        -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="spring.cloud.service.dao" targetProject="src/main/java"/>

        <table tableName="test_date" domainObjectName="TestDate" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
            <!--在insert语句中,返回自增主键-->
            <generatedKey column="id" sqlStatement="Mysql"/>
        </table>
    </context>
</generatorConfiguration>

 

转载于:https://www.cnblogs.com/domi22/p/10632045.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
POJOGeneratorPOJO代码生成器 v1.3.3) 本POJO代码生成器采用Java的Swing技术编码实现,是绿色免费工具,可以自由传播。 由于本工具的内部实现较烂,所以还请反编译高手手下留情,让我留几分颜面。^_^ 由于本人只用过Oracle、DB2、MySQL、MS SQL Server这四款数据库产品,所以制作 成exe可执行文件时只添入了这四款数据库的驱动支持。如果您需要使用这款工具从 其它数据库中生成POJO,那么您可以联系我(Email:CodingMouse@gmail.com), 我会添加其它数据库的驱动支持后通过电子邮件发送给您。 简单的使用说明: 1、先将压缩档解压到任意文件夹,必须保留配置文件cmsdk4j.cfg.xml和generator .cfg.xml与可执行文件POJOGenerator.exe在同一目录,否则无法运行。 2、可以预先在配置档cmsdk4j.cfg.xml中设定您的数据库服务器配置,配置档中已经 提供了默认的配置信息,您仅需在此基础上修改部分参数(如:IP地址、端口号、 用户名、密码、数据库名等),这些参数将作为生成器的预设数据库连接配置参数。 3、可以预先在配置档generator.cfg.xml中设定您的数据类型映射方案,配置档中已经 提供了MS SQL Server/MySQL/DB2和Oracle两种映射方案,当然,可能有不太完整的地方 ,您可以根据实际情况稍作修改即可。需要注意的一点是ref属性表示引用同一映射方案 的另一映射,这样您便可以简化同一映射数据类型的配置;而import属性是指定需要在 最终生成的源代码中作为类最开始的package类型导入声明部分的导入类型名称,因此, 这个名称是完整带包名的类名称,否则不能正确生成最终代码。配置档中提供的默认配 置如果不能满足你的需要,也可以自行根据实际情况进行修改。最后,需要大家注意的 一点就是由于最终生成的代码要调用包装类型的equals和hashCode方法,因此,配置的 数据类型必须是包装类型,如果用基本类型生成的POJO代码是无法通过编译的。 4、所有配置档仅在工具启动初始读取一次并缓存到内存中,因此,如果您是在工具运行 时修改的配置档,请重新启动本工具以使新的配置生效。并且,所有配置档的XML结构均 不能修改,只能修改其节点间的文本值或属性值,以及添加新的标签组,否则会导致本 工具无法工作。选择“界面皮肤方案”后,默认会在当前目录生成名为skin.dat的文件, 这是一个Properties属性文件,用于保存您最后选择的皮肤名称,以便下次打开此工具 时加载您所选择的皮肤来渲染工具UI界面。 5、所有最终代码生成效果都可以在左边的代码预览区域中查看,可点击滑动箭头显示出 被隐藏的POJO代码卡片。点击“写入磁盘文件”按钮即可将POJO代码Java源码文件写入 到指定文件夹中。POJO代码的equals方法重写完全符合《Core Java》所述规范,同时, 其中的hashCode方法重写则参考了Netbeans中JavaBean转换器的写法。为保障原有代码安 全,通常更好的做法是将最终代码生成后拷贝到您的项目对应文件夹中。最好不要直接指 向您的项目文件夹,因为本工具会直接覆盖掉指定目录中同名的文件。最终生成的代码文 件以.java为扩展名。 6、从1.3版开始生成的POJO代码目录中可自动添加一个名为pojo.ntf.xml的POJO映射通 知档,其中,ID列名默认使用主键名称(若为复合主键则采用次序排首位的主键列名) ,而Oracle环境下的sequence对象名称则为“seq_表名_id”格式的默认名称,请根据 实际情况修改。该配置档用于CmSdk4j-Core框架的ORM映射,不需要则请不要勾选此项或 在生成后直接删除即可。 7、目前1.3.3版与1.3版差异不大,仅修改了POJO类名与成员变量名的大小写处理策略。 即目标数据库服务器为Oracle时,才将表名除首字母外全部小写处理成POJO类名,同理, 成员变量名也只在Oracle数据库情况下才全小写处理。其余数据库如:DB2、MySQL、 MS SQL Server则直接处理为除首字母大写外,其余全部保留原始大小写。其中,对于 表名的处理还直接去掉了空格符和下划线,并且若为Oracle数据库时,下划线亦作为首 字母大写的分隔标志,如:HRM_HUMAN_RESOURCE,最终生成的POJO类名将直接去掉串中 的下划线,并以下划线作为首字母大写的起始,即:HrmHumanResource + POJO类名后缀。 同理,成员变量名的处理也是采用了相同的处理策略。最终处理效果详见生成写入到磁盘 的pojo.ntf.xml配置档。 8、此小工具一直均只写来自用,以便与自己的O/R Mapping简易版工具配套使用,目前 1.3.3这个版本已经能满足自己的需要,同时为了方便预览POJO代码生成的效果,特意添 加了语法着色功能,其着色色调搭配和关键字字典数据来源于EmEditor这款带语法着色的 纯文本编辑器,并且该色调搭配方案也被多款JS版本的语法着色器采用,色调可读性较高。 此小工具虽然GUI、功能这些都相对较弱,但自用已经足够。因此,后期可能就不再考虑 功能更新了,请见谅! 如果您有好的建议,请发送留言到作者博客:http://blog.csdn.net/CodingMouse 或发送邮件到:CodingMouse@gmail.com 本工具已经打包成exe可执行文件,便于在Window环境下运行,但仍需要你的机器上 安装至少1.6版本的jre环境(受打包工具的jre版本不兼容限制影响)。 By CodingMouse 2010年5月22日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值