maven mybatis插件生成代码
一、maven依赖
<plugin>
<!--Mybatis-generator插件,用于自动生成Mapper和POJO-->
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<!--配置文件的位置-->
<!-- <configurationFile>generatorConfig.xml</configurationFile> -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
</plugin>
二、generatorConfig.xml和generatorConfig.properties
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>
<!-- resource:指定**classpath**下的属性文件 url:可以指定文件系统上的特定位置,例如file:///C:/myfolder/generatorConfig.properties -->
<properties resource="generatorConfig.properties" />
<!--
配置该元素只需要注意如果JDBC驱动不在**classpath**下,就需要通过<classPathEntry>元素引入jar包
<classPathEntry location="E:\mysql\mysql-connector-java-5.1.29.jar"/> 相对位置 或者文件的绝对路径-->
<!-- <classPathEntry location="${driver.class.path}" /> -->
<!-- conditional(默认,主键为1个字段则不重新生成类)|flat(只生成一个类)|hierarchical(主键,一般字段,blob字段都生成单独的类) -->
<context id="mysqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 默认beginningDelimiter=' endingDelimiter='-->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="javaFileEncoding" value="UTF-8" />
<!-- 0 entity实现 序列化接口 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<commentGenerator>
<property name="suppressAllComments" value="false"/>
<property name="addRemarkComments" value="true"/>
<!-- suppressAllComments设置成true后 suppressDate也不显示-->
<property name="suppressDate" value="true"/>
</commentGenerator>
<jdbcConnection connectionURL="${url}" driverClass="${driver}"
password="${password}" userId="${username}" />
<javaTypeResolver></javaTypeResolver>
<!--生成Model(PO)实体类存放位置 enableSubPackagesg根据表的catalog生成子包-->
<javaModelGenerator targetPackage="per.lwp.mybatis.test.model"
targetProject="${targetProject}" >
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成映射文件存放位置,不需要映射文件删除即可-->
<sqlMapGenerator targetPackage="per.lwp.mybatis.test.mapper" targetProject="${targetProject}" >
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator targetPackage="per.lwp.mybatis.test.mapper"
targetProject="${targetProject}" type="XMLMAPPER" />
<!-- 生成所有表可以使用sql通配符
<table catalog="test" schema="test" tableName="%"> -->
<table schema="test" tableName="blog">
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>
</context>
</generatorConfiguration>
generatorConfig.properties
# mysql 8
#driver = com.mysql.cj.jdbc.Driver
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
username = root
password = 123456
# 生成的项目目录下
#targetProject = ./
# maven目录下源码目录下
targetProject = src/main/java
三、maven打包生成