MyBatis Generator逆向工程-你还在手写mapper吗?
时间:2022-07-25
本文章向大家介绍MyBatis Generator逆向工程-你还在手写mapper吗?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
MyBatis Generator逆向工程
- 什么是逆向工程?
- 导入jar包
- 配置文件
- 生成代码
什么是逆向工程?
简单来说,Mybatis逆向工程可以根据数据库的表来逆向生成相关java代码和sql语句,如mapper.java,mapper.xml。虽然mapper接口及其配置文件我们完全可以自己写,不过当表数量很多,关联复杂时,用MyBatis Generator逆向工程就十分方便了。当然了,我们也可以根据业务逻辑修改其生成的mapper。
导入jar包
将mybatis-generator-core相关jar包导入项目,在maven仓库中搜索mybatis generator,复制代码到pom.xml。 不了解Maven的小伙伴,可以点这里。 或者直接下载并导入jar包,github下载地址。
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
配置文件
新建配置文件mbg.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>
<!--这里用的是MyBatis3Simple即简单的增删改查-->
<!--一般使用MyBatis3-->
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<!-- 逆向生成清除注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库连接配置 -->
<jdbcConnection
driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/experiment9?serverTimezone=UTC"
userId="root"
password="数据库密码">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 指定javaBean逆生成位置 -->
<javaModelGenerator
targetPackage="cn.csdn.bean"
targetProject=".srcmainjava">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 指定sql映射文件生成的位置 -->
<sqlMapGenerator
targetPackage="mapper"
targetProject=".srcmainresources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 指定dao接口生成的位置,mapper接口 -->
<javaClientGenerator
type="XMLMAPPER"
targetPackage="cn.csdn.dao"
targetProject=".srcmainjava">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 指定每个表的生成策略 -->
<table tableName="message" domainObjectName="Message"></table>
<table tableName="product" domainObjectName="Product"></table>
<table tableName="revert" domainObjectName="Revert"></table>
<table tableName="user" domainObjectName="User"></table>
</context>
</generatorConfiguration>
生成代码
配置完后,官网上逆向生成的方法有很多,如命令行,eclipse插件等,这里介绍用java代码调用。 新建MBGTest.java
package cn.csdn.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class MBGTest {
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("mbg.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);
System.out.println("finish");
}
}
Run As->Java Application
最后控制台打印finish,刷新目录,就有生成的文件了。
原创不易,请勿转载(
本不富裕的访问量雪上加霜) 博主首页:https://blog.csdn.net/qq_45034708
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Python3 列表
- Mycat 核心配置详解
- Python字符串
- 初识 HBase
- Number对象
- Windows 技术篇-设置计划任务,每天自动关机
- Mycat 快速入门
- Python 技术篇-连接qq邮箱服务器,调用qq邮箱发送邮件实战演示,qq邮箱授权码开通方法
- 浅谈数据库集群方案
- SkyWalking - 实现微服务监控告警
- Actuator + Prometheus + Grafana搭建微服务监控平台
- Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法
- python运算符
- Windows 技术篇-禁用windows更新服务,解决windows无法关闭更新问题,解决windows自己启用更新问题。
- 搭建 SkyWalking 服务(For ElasticSearch 7)