mybatis逆向工程生成注解的工程配置
时间: 2023-05-03 18:07:53 浏览: 131
mybatis 逆向生成配置文件
MyBatis逆向工程是一个非常实用的工具,可以根据数据库表结构自动生成Java Bean对象和Mapper映射接口代码,提高开发效率。而生成的代码默认使用XML文件配置SQL语句,但是随着Java EE技术的不断发展,注解已经逐渐成为了一个非常流行和便捷的编程方式。
因此,很多开发者开始使用MyBatis逆向工程生成注解的代码。下面是一个基本的工程配置步骤:
1. 添加相关依赖
在Maven工程中,需要添加MyBatis、MyBatis Generator和数据库驱动的依赖。例如:
```
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
```
2. 编写generatorConfig.xml
该配置文件位于src/main/resources/目录下,可以使用MyBatis Generator提供的GUI工具进行可视化编辑,也可以手动编写该文件。编写该文件时需要注意以下几点:
- database、jdbcConnection、table等元素的配置与普通的XML配置类似。
- 需要添加context元素,并在其中配置JavaModelGenerator、SqlMapGenerator和JavaClientGenerator等元素,分别用来生成Java Bean、Mapper映射接口和Mapper XML文件。
- 在context元素中添加targetRuntime="MyBatis3Simple"属性,表示使用简单的MyBatis3运行时,可以生成注解的代码。
例如:
```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>
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test"
userId="root"
password="root">
</jdbcConnection>
<javaModelGenerator targetPackage="com.example.demo.pojo"
targetProject="src/main/java">
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.demo.mapper"
targetProject="src/main/java">
</sqlMapGenerator>
<javaClientGenerator type="ANNOTATEDMAPPER"
targetPackage="com.example.demo.mapper"
targetProject="src/main/java">
</javaClientGenerator>
<table tableName="student"></table>
</context>
</generatorConfiguration>
```
3. 运行Generator
使用Maven插件或者命令行运行MyBatis Generator,生成自动化代码到指定目录下。例如:
```shell
mvn mybatis-generator:generate
```
4. 代码使用
生成的 Java Bean、Mapper 接口和注解 SQL 语句已经全部生成了,可以直接使用。例如:
```java
public interface StudentMapper {
@Select({
"select",
"id, name, age, sex",
"from student",
"where id = #{id,jdbcType=INTEGER}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.INTEGER, id=true),
@Result(column="name", property="name", jdbcType=JdbcType.VARCHAR),
@Result(column="age", property="age", jdbcType=JdbcType.INTEGER),
@Result(column="sex", property="sex", jdbcType=JdbcType.VARCHAR)
})
Student selectByPrimaryKey(Integer id);
}
```
以上是MyBatis逆向工程生成注解的代码的工程配置过程,也是一种传统的方式。近年来,大部分使用MyBatis的开发者会选择使用习惯上更加统一的Lombok注解类库,必要的情况下也会对产生的代码进行瘦身优化,使代码更加简洁。
阅读全文