mybatis-generator自动生成

pom.xml添加依赖:

    <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
    <!--generatorConfig.xml会使用这个配置-->
        <generator.targetProject.java>${basedir}/src/main/java</generator.targetProject.java>
<generator.targetProject.resource>${basedir}/src/main/resources</generator.targetProject.resource>
</properties>

    <!-- mysql驱动连接包 -->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>



<!-- mybatis generator生成-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.3.6</version>
</dependency>
</dependencies>
</plugin>


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">
<generatorConfiguration>
<properties resource="application.yml"/>

<context id="DB2Tables" targetRuntime="MyBatis3">
<!--生成文件编码-->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖-->
<property name="autoDelimitKeywords" value="false"/>
<!--格式化Java代码-->
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!--格式化xml代码-->
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>

<commentGenerator>
<!--生成注释信息的时间戳-->
<property name="suppressDate" value="false"/>
<!--是否去除自动生成的注释-->
<property name="suppressAllComments" value="true"/>
</commentGenerator>



<!-- mysql 8.0的驱动连接:com.mysql.cj.jdbc.Driver , 8.0以前使用: com.mysql.jdbc.Driver-->

<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;autoReconnect=true&amp;serverTimezone=UTC"
userId="root" password="123456">
</jdbcConnection>

<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="com.example.demo_mybatis.entity"
targetProject="${generator.targetProject.java}">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="false"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置 -->
<sqlMapGenerator targetPackage="mapper" targetProject="${generator.targetProject.resource}">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.demo_mybatis.mapper"
targetProject="${generator.targetProject.java}">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>

<!-- 自动生成entity、mapper、mapperXml配置

1. 其中enableCountByExample="true"、enableUpdateByExample="true"、enableDeleteByExample="true"、
enableSelectByExample="true"、selectByExampleQueryId="true" 在mybatis3中默认为true
2. <property name="useActualColumnNames" value="false" /> 默认为false,false指使用驼峰命名
3. domainObjectName 属性默认为表名的驼峰命名
4. 当数据库字段为 tinyint 时,entity中会生成boolean类型,如需要其他类型需要使用columnOverride指定,
并且jdbcType需要全部大写,参考:http://www.mybatis.org/mybatis-3/apidocs/reference/org/apache/ibatis/type/JdbcType.html

-->

<table tableName="table_name_abc"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
<property name="useActualColumnNames" value="false" />
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
<!-- 处理数据库字段到entity的对应关系,通过这个可以生成entity为insureFailMsg的映射到表(table_name_abc)的字段 insure_fail_msg -->
<columnOverride column="insure_fail_msg" property="insureFailMsg" jdbcType="VARCHAR"/>
</table>

</context>
</generatorConfiguration>
双击运行:注意这里如果多次点击生成时原来生成的XXXXMapper.xml文件的内容是不断追加的,所以我们可以通过把
generatorConfig.xml配置生成的表中已生成过的表注释掉;或者每次生成前手动删除所有的XXXXMapper.xml文件,然后运行

 

 

 

 





posted @ 2020-09-26 11:09  跑跑蹦蹦跳跳  阅读(164)  评论(0)    收藏  举报