包内创建:generator
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">
<!-- Mybatis generator配置,默认针对MySQL数据库,具体参考 http://www.mybatis.org/generator/configreference/xmlconfig.html -->
<generatorConfiguration>
<!-- mysql 导入的路径-->
<!-- 配置文件的路径 -->
<properties resource="generator/mybatisGenerator.properties"/>
<classPathEntry location="D:\apache-maven-3.6.1\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/>
<!-- 每一张表只生成一个实体类 -->
<context id="default" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
<property name="autoDelimitKeywords" value="false"/>
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,
比如ORACLE就是双引号 \",MYSQL默认是`反引号 -->
<!-- <property name="beginningDelimiter" value=""/>-->
<!-- <property name="endingDelimiter" value=""/>-->
<!-- tk -->
<!--这里最关键的参数就是 mappers,配置后生成的 Mapper 接口都会自动继承上改接口-->
<!--
其他参数的含义:
• caseSensitive 是否区分大小写,默认值 false。如果数据库区分大小写,这里就需要配置为 true,这样当表名为 USER 时,会生成 @Table(name = "USER") 注解,否则使用小写 user 时会找不到表。
• forceAnnotation 是否强制生成注解,默认 false,如果设置为 true,不管数据库名和字段名是否一致,都会生成注解(包含 @Table 和 @Column)。
• beginningDelimiter 和 endingDelimiter 开始和结束分隔符,对于有关键字的情况下适用。
• useMapperCommentGenerator 是否使用通用 Mapper 提供的注释工具,默认 true 使用,这样在生成代码时会包含字段的注释(目前只有 mysql 和 oracle 支持),设置 false 后会用默认的,或者你可以配置自己的注释插件。
• generateColumnConsts 在生成的 model中,增加字段名的常量,便于使用 Example 拼接查询条件的时候使用。
• lombok 增加 model 代码生成时,可以直接生成 lombok 的 @Date 注解, 使用者在插件配置项中增加 <property name="lombok" value="Getter,Setter,ToString,Accessors"/> 即可生成对应包含注解的 model 类。
-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<!-- <property name="beginningDelimiter" value="`"/>-->
<!-- <property name="endingDelimiter" value="`"/>-->
<property name="lombok" value="Data"/>
</plugin>
<!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
<!-- 用于获取表的注释信息等 -->
<property name="useInformationSchema" value="true"/>
</jdbcConnection>
<!-- Java类型解析配置 -->
<javaTypeResolver>
<!-- 将JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
<property name="forceBigDecimals" value="true"/>
<!-- 将JDBC DATE,TIME和TIMESTAMP类型解析为java.util.Date -->
<property name="useJSR310Types" value="false"/>
</javaTypeResolver>
<!-- targetPackage生成Domain类的包路径,targetProject生成Domain类的物理路径 -->
<javaModelGenerator targetPackage="${model.target.package}" targetProject="${model.target.project}">
<!-- 不使用schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
<!-- 不为String类型的setter方法自动加上trim -->
<property name="trimStrings" value="false"/>
</javaModelGenerator>
<!-- targetPackage生成XML文件的包路径,targetProject生成XML文件的物理路径-->
<sqlMapGenerator targetPackage="${mapper.target.package}" targetProject="${mapper.target.project}">
<!-- 不使用schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- targetPackage生成DAO接口的包路径,targetProject生成DAO接口的物理路径 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="${dao.target.package}" targetProject="${dao.target.project}">
<!-- 不使用schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 指定数据库表,schema数据库名,tableName数据表名,%表示匹配所有的表 -->
<table tableName="pms_category" schema="pmsCategory"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- generatedKey用于生成生成主键的方法,column表示主键名称,
sqlStatement=JDBC相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性 -->
<!-- <generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual"/>-->
<generatedKey column="id" sqlStatement="JDBC"/>
<!--该元素会在根据表名计算类名之前先重命名表名,非常适合用于表名中都有公用的前缀字符串的时候,-->
<!--比如表名为:T_USER,T_ORDER等;-->
<!--那么就可以设置searchString为"^T"(无论表名是否大写,此处首字母一定为大写),并使用空白替换,-->
<!--那么会生成User, Order对象,-->
<!--注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的-->
<!-- <domainObjectRenamingRule searchString="^CIPS" replaceString=""/>-->
<!--
该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,
比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;
那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是
custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;
注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,
如果使用了columnOverride元素,该属性无效;
<columnRenamingRule searchString="" replaceString=""/>
-->
<!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;
column:要重新设置的列名;一个table元素中可以有多个columnOverride元素
详细可参考http://www.mybatis.org/generator/configreference/columnOverride.html
<columnOverride column="username" property="userName" />
-->
<!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现
column:指定要忽略的列的名字;delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false;
注意,一个table元素中可以有多个ignoreColumn元素
<ignoreColumn column="deptId" delimitedColumnName=""/>
-->
</table>
</context>
</generatorConfiguration>
mybatisGenerator.properties
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://101.42.221.186:3306/gulimall_pms?serverTimezone=UTC&nullCatalogMeansCurrent=true
jdbc.username=root
jdbc.password=123456
# Domain\u7C7B\u7684\u5305\u8DEF\u5F84
model.target.package=com.liuyang.entity.po
# Domain\u7C7B\u7684\u7269\u7406\u8DEF\u5F84
model.target.project=src/main/java
# \u751F\u6210Mapper XML\u6587\u4EF6\u7684\u5305\u8DEF\u5F84
mapper.target.package=mapper.participant
# \u751F\u6210Mapper XML\u6587\u4EF6\u7684\u7269\u7406\u8DEF\u5F84
mapper.target.project=src/main/resources
# DAO\u63A5\u53E3\u7684\u5305\u8DEF\u5F84
dao.target.package=com.liuyang.mapper
# DAO\u63A5\u53E3\u7684\u7269\u7406\u8DEF\u5F84
dao.target.project=src/main/java
引入插件
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<include>**/**.xml
**/ **.properties</include>
<include>**/**.doc
**/ **.docx</include>
<include>**/**.xlsx
**/ **.xls</include>
<include>**/**.pdf
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.7
${basedir}/src/main/resources/generator/generatorConfig.xml
true
true
tk.mybatis
mapper
4.1.5
引入maven
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.0.4</version>
</dependency>