Mybatis-generator的简单使用
下面是在idea的springboot maven工程中使用Mybatis-generator
目录结构
pom.xml
需要的依赖:
- mybatis启动器
- MySQL连接
- mybatis自动生成代码插件
- mybatis自动生成core
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.test</groupId>
<artifactId>mybatis-generator-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-generator-test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis-generator自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
application.properties(数据库连接参数的文件,可以是其他)
# DB
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=12345
generatorConfig.xml
- 引入有数据库参数的属性文件
- 数据库连接jar包的路径(mysql连接jar包)
- 连接数据库,配置数据库连接的数据
- pojo类,生成的路径等
- mapper文件,生成的路径等
- dao接口,生成的路径等
- 定义要逆向工程的表
<?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.properties" />
<!-- jdbc连接的mysql或者oracle的连接包jar,最好是配置为绝对路径 -->
<classPathEntry
location="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\8.0.19\mysql-connector-java-8.0.19.jar"/>
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 配置数据源信息,多数据源需要配置多份文件,对应需要修改数据源信息,可以使不同主机的数据库,也可以是同一数据库服务器上的不同数据库名 -->
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
<!--参考 : http://www.mybatis.org/generator/usage/mysql.html-->
<!--不让其他数据库的同名表生成pojo,mapper-->
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!-- 配置生成的model对象也就是javabean,对应数据库表属性的javabean生成到的包路径和绝对代码路径,只需要配置到工程的/src/main/java就可以了,具体的路径由包路径指定。
由于多数据源,所以我在model后面加了一层以示区分不同数据源的信息 -->
<javaModelGenerator targetPackage="com.test.mybatisgenerator.pojo"
targetProject="./src/main/java">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper文件生成路劲和包名 -->
<sqlMapGenerator targetPackage="com.test.mybatisgenerator.mapper"
targetProject="./src/main/java">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- dao层接口文件 -->
<javaClientGenerator targetPackage="com.test.mybatisgenerator.mapper"
targetProject="./src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 数据库里面的表名信息和配置,多张表需要配置多条信息 -->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>