如何优雅地使用Mybatis逆向工程生成类
文/朱季谦
1.环境:SpringBoot
2.在pom.xml文件里引入相关依赖:
1 <plugin>
2 <groupId>org.mybatis.generator</groupId>
3 <artifactId>mybatis-generator-maven-plugin</artifactId>
4 <version>1.3.6</version>
5 <configuration>
6 <verbose>true</verbose>
7 <overwrite>true</overwrite>
8 </configuration>
9 <dependencies>
10 <dependency>
11 <groupId>mysql</groupId>
12 <artifactId>mysql-connector-java</artifactId>
13 <version>5.1.36</version>
14 </dependency>
15 </dependencies>
16
17 </plugin>
18
19
20
21 <dependency>
22 <groupId>org.mybatis.generator</groupId>
23 <artifactId>mybatis-generator-core</artifactId>
24 <version>1.3.6</version>
25 </dependency>
3.创建generatorConfig.xml文件
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE generatorConfiguration
4 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
5 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
6
7 <generatorConfiguration>
8 <context id="testTables" targetRuntime="MyBatis3">
9 <commentGenerator>
10 <!-- 是否去除自动生成的注释 true:是 : false:否 -->
11 <property name="suppressAllComments" value="true" />
12 </commentGenerator>
13 <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
14 <jdbcConnection driverClass="com.mysql.jdbc.Driver"
15 connectionURL="jdbc:mysql://127.0.0.1:3306/example?useUnicode=true&characterEncoding=utf8"
16 userId="root"
17 password="123456">
18 </jdbcConnection>
19
20 <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
21 和 NUMERIC 类型解析为java.math.BigDecimal -->
22 <javaTypeResolver>
23 <property name="forceBigDecimals" value="false" />
24 </javaTypeResolver>
25
26 <!-- targetProject:生成PO类的位置 -->
27 <javaModelGenerator targetPackage="com.zhu.text.domain"
28 targetProject=".\src\main\java">
29 <!-- enableSubPackages:是否让schema作为包的后缀 -->
30 <property name="enableSubPackages" value="false" />
31 <!-- 从数据库返回的值被清理前后的空格 -->
32 <property name="trimStrings" value="true" />
33 </javaModelGenerator>
34 <!-- targetProject:mapper映射文件生成的位置 -->
35 <sqlMapGenerator targetPackage="com.zhu.text.dao"
36 targetProject=".\src\main\java">
37 <!-- enableSubPackages:是否让schema作为包的后缀 -->
38 <property name="enableSubPackages" value="false" />
39 </sqlMapGenerator>
40 <!-- targetPackage:mapper接口生成的位置 -->
41 <javaClientGenerator type="XMLMAPPER"
42 targetPackage="com.zhu.text.dao" targetProject=".\src\main\java">
43 <!-- enableSubPackages:是否让schema作为包的后缀 -->
44 <property name="enableSubPackages" value="false" />
45 </javaClientGenerator>
46 <!-- 指定数据库表 -->
47 <table tableName="text_product" domainObjectName="Product"></table>
48 </context>
49 </generatorConfiguration>
4.创建main类
1 import java.io.File;
2 import java.util.ArrayList;
3 import java.util.List;
4 import org.mybatis.generator.api.MyBatisGenerator;
5 import org.mybatis.generator.config.Configuration;
6 import org.mybatis.generator.config.xml.ConfigurationParser;
7 import org.mybatis.generator.internal.DefaultShellCallback;
8
9 public class MBGenerator {
10 public static void main(String[] args) throws Exception{
11
12 List<String> warnings = new ArrayList<String>();
13 boolean overwrite = true;
14 File configFile = new File("例:generatorConfig.xml的存放路径");
15 ConfigurationParser cp = new ConfigurationParser(warnings);
16 Configuration config = cp.parseConfiguration(configFile);
17 DefaultShellCallback callback = new DefaultShellCallback(overwrite);
18 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
19 myBatisGenerator.generate(null);
20 }
21 }
5.执行maven方法里的mybatis-generator:generate

完成以上步骤,就可以自定生成需要的xml文件与类以及对应的java bean类。
如何优雅地使用Mybatis逆向工程生成类的更多相关文章
- Mybatis逆向工程生成类文件
首先,我们需要建好相关文件夹目录: 然后,编写执行脚本 generator.xml : 1 <?xml version="1.0" encoding="UTF-8& ...
- MyBatis逆向工程生成的Example类的方法总结
很早之前就在项目开发中多次使用MyBatis逆向工程生成的Example类,但一直没有对其下的方法做一个简单的总结,现总结如下:一.mapper接口中的方法解析mapper接口中的部分常用方法及功能如 ...
- Mybatis逆向工程生成po、mapper接口、mapper.xml
Mybatis逆向工程生成po.mapper接口.mapper.xml 一.新建一个maven工程 请查看我的另一篇博客:<使用idea创建一个maven工程> 二.引入所需依赖 需要my ...
- MyBatis逆向工程生成配置 generator (生成pojo、mapper.xml、mapper.java)
MyBatis逆向工程生成 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml ...
- 使用最新版Mybatis逆向工程生成属性不全的问题
这是出现问题时打印的日志 首先查看表内的字段 这张User表含8个属性,但是在逆向工程过程中生成的Pojo类不全还出现了不存在的属性 主要在逆向工程过程中的一个配置问题,修改generatorConf ...
- mybatis逆向工程生成JavaBean、dao、mapper generatorSqlmapCustom
import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator ...
- mybatis逆向工程生成代码
1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po. ...
- mybatis逆向工程生成java代码和xml配置
mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo.Mapper xml文件.Mapper 接口文件. mybatis-generator有很多种用法: ...
- mybatis逆向工程生成mapper报错
Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法一.问题描述今天在做项目时,遇到一个错误: ...
- mybatis逆向工程生成example的问题
如果不想生成example,在 targetRuntime="MyBatis3" 处修改为 targetRuntime="MyBatis3Simple" & ...
随机推荐
- 小程序真机报错errMsg: “hideLoading:fail:toast can‘t be found“ ?
showLoading 和 showToast 同时只能显示一个: showLoading 应与hideLoading 配对使用: 把请求接口统一封装,开始请求接口时showLoading,请求接口后 ...
- 微信小程序长按识别二维码
微信小程序长按识别二维码 image 组件中二维码/小程序码图片不支持长按识别.仅在 wx.previewImage 中支持长按识别示例代码
- 服务器电源管理(Power Management States)
目录 文章目录 目录 EIST(智能降频技术) 硬件 固件 操作系统 EIST(智能降频技术) EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量.它 ...
- PageOffice调用本地office实现多人在线同时编辑Word文档
说明:多人同时在线编辑文件大多数会出现文档相互覆盖的问题,后保存的文档会覆盖先保存的文档.pageoffice的这个功能可以用程序控制不同用户打开文件后,编辑Word文档中属于自己的区域,并且不会互相 ...
- java学习之旅(day.02)
java运行机制 编译型:转换为计算机可读的语言 解释型:用什么,读什么 预编译:java文件(源程序)通过javac命令到class文件,class文件(类)放入类加载器,这个类就加载到JVM中了, ...
- 【论文阅读】VulCNN受图像启发的可扩展漏洞检测系统
基本信息 摘要 由于深度学习(DL)可以自动从源代码中学习特征,因此已被广泛用于源代码漏洞检测.为了实现可扩展的漏洞扫描,一些先前的研究打算通过将源代码视为文本来直接处理源代码.为了实现准确的漏洞检测 ...
- PasteSpider之appsettings.json中的Serilog的配置,分流不同日志层级的信息!
在实际使用Serilog中,我们通常会有不一样的需求,常见的比如 1.按照等级,高级哪个等级的才记录 2.记录文件每个多大,超过的划分到下一个文件中 3.不同等级的记录到不同的位置中 4.按照不一样的 ...
- EDP .Net开发框架--组织架构
职类 职类是将职务进行分类管理,并定义了职类标记和职级.职类标记会带入到该职类下的职务作为职务的标记,并为职务提供职级范围选择. "高管类"职类定义了其职级范围为"PM1 ...
- 部署springboot+vue项目文档(若依ruoyi项目部署步骤)
摘自:https://blog.csdn.net/Dreamboy_w/article/details/104389797 部署springboot+vue项目文档(若依ruoyi项目部署步骤)一:部 ...
- c#获取开机时间
public static DateTime OpenCom() { TimeSpan t = TimeSpan.FromMilliseconds(System.Environment.TickCou ...