??通用mapper也是提供了代码生成器,并且提供了两种:专用代码生成器 和 通用代码生成器,本文主要介绍 专用代码生成器。通用 Mapper 专用代码生成器生成的 Model 会在原有基础上增加 @Table,@Id,@Column 等注解,方便自动会数据库字段进行映射。 1. 导入jar包 ??通用 Mapper 的代码生成器需要配置MyBatis使用,注意包之间的版本依赖关系
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-generator</artifactId>
<version>4.2.1</version>
</dependency>
2. 编写配置文件 generatorConfig.xml ??和MyBatis的代码生成器一样是通过配置文件进行配置参数
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="javaFileEncoding" value="UTF-8"/>
<property name="useMapperCommentGenerator" value="false"/>
<property name="lombok" value="Data"/>
<property name="forceAnnotation" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="caseSensitive" value="true"/>
</plugin>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://10.1.8.41:3306/test001"
userId="root"
password="123456">
</jdbcConnection>
<javaModelGenerator targetPackage="com.hxz.entity"
targetProject="springboot-mybatis-mapper/src/main/java"/>
<sqlMapGenerator targetPackage="mapper"
targetProject="springboot-mybatis-mapper/src/main/resources"/>
<javaClientGenerator targetPackage="com.hxz.mapper"
targetProject="springboot-mybatis-mapper/src/main/java"
type="XMLMAPPER"/>
<table tableName="role"/>
<table tableName="user"/>
</context>
</generatorConfiguration>
注意:plugin 节点的参数可以按照 tk.mybatis.mapper.generator.MapperPlugin 类的属性进行配置 ??代码生成器可通过Java代码和Maven插件来生成代码 3. 通过Java代码生成
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(Resources.getResourceAsStream("generatorConfig.xml"));
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
for (String warning : warnings) {
System.out.println(warning);
}
}
4. 通过Maven插件生成 ??在pom文件中配置插件
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<configurationFile>
${basedir}/src/main/resources/generatorConfig.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.2.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
注意:
1.
j
a
r
包
版
本
依
赖
问
,
至
本
文
发
布
日
期
,
上
面
导
入
的
版
本
是
可
以
正
常
使
用
的
\color{red}{1. jar包版本依赖问,至本文发布日期,上面导入的版本是可以正常使用的}
1.jar包版本依赖问,至本文发布日期,上面导入的版本是可以正常使用的
2.
实
体
类
、
m
a
p
e
r
、
x
m
l
生
成
的
配
置
中
,
t
a
r
g
e
t
P
r
o
j
e
c
t
参
数
值
在
使
用
j
a
v
a
代
码
生
成
时
需
要
加
上
项
目
名
称
,
在
使
用
m
a
v
e
n
插
件
生
成
时
不
需
要
加
项
目
名
称
\color{red}{2. 实体类、maper、xml生成的配置中,targetProject 参数值在使用java代码生成时需要加上项目名称,在使用maven插件生成时不需要加项目名称}
2.实体类、maper、xml生成的配置中,targetProject参数值在使用java代码生成时需要加上项目名称,在使用maven插件生成时不需要加项目名称
源码地址:https://gitee.com/peachtec/hxz-study
|