逆向工程需要准备
- mybatis包
- 数据库连接包
- org.mybatis.generator的逆向工程插件
- 这三个包
1.创建好文件目录
2,首先得在资源resources文件夹下创建好好逆向工程的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>
<!--
targetRuntime: 执行生成的逆向工程的版本
MyBatis3Simple: 生成基本的CRUD
MyBatis3: 生成带条件的CRUD
一般基本的够用了这里建议用基本的
-->
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<commentGenerator>
<!--注释是否包含生成时间 一般设置true 不生成-->
<!-- <property name="suppressDate" value="true"/>-->
<!--去掉没用的注释,节省代码量-->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库连接配置-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/ssmbuild?allowMultiQueries=true&characterEncoding=utf-8&useSSL=false&"
userId="root"
password="root">
</jdbcConnection>
<!-- javaBean的生成 targetProject文件生成的位置,targetPackage具体的包名-->
<javaModelGenerator targetPackage="org.example.bean" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- SQL映射文件的生成 targetProject文件生成的位置,targetPackage具体的包名-->
<sqlMapGenerator targetPackage="dd" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- Mapper接口的生成 targetProject文件生成的位置,targetPackage具体的包名-->
<javaClientGenerator type="XMLMAPPER" targetPackage="org.example.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--tableName代表数据库的表名, domainObjectName表示要创建的java对象的对象名
一定要一一对应 -->
<table tableName="emp" domainObjectName="Emp"></table>
<table tableName="dept" domainObjectName="Dept"></table>
</context>
</generatorConfiguration>
3.创建测试类运行如下代码
package org.example.Test;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Test01 {
@Test
public void testMBG() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("src\\main\\resources\\generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
}
运行后直接生成对应的pojo,mapper接口和映射文件
可以看出逆向工程生成的映射文件内容比自己写得更为详细具体
以上就是没用maven使用逆向工程插件的方式,接下来就是用maven的方式来实现逆向工程
首先添加依赖和插件
添加依赖如下
<dependencies>
<!-- 整合mybatis框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--逆向工程以来-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
然后再在这两个标签之间添加代码
就是这样子
代码如下
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
</dependencies>
<configuration>
<!--配置文件的路径-->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
配置好之后一点刷新可以看见maven那边多了一个插件选项
一点就成功生成了
以上就是两种方式来使用逆向工程
逆向工程的好处可以让我们不要去创建实体类和对应的mapper接口文件以及简单curd映射文件代码,
极大地节省了时间,让我们更好地去编写一些业务类的代码
逆向工程真香
˶‾᷄ꈊ‾᷅˵
如果觉得有用就收藏加点赞吧