如何优雅地使用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" & ...
随机推荐
- 前端JavaScript开发风格规范
开发者需要建立和遵守的规范 大致可以划分成这几个方向: 开发流程规范 代码规范 git commit规范 项目文件结构规范 UI设计规范 1. 开发流程规范 这里可能有小伙伴有疑问了,开发流程规范不是 ...
- centos7 hpc高性能计算集群配置(无密码访问、nfs文件共享)
0.检查硬件的超线程 由于模型运行时,每个进程几乎都会占用100%的CPU计算能力,开启超线程之后,每个进程最多使用每个核心50%的计算能力,导致程序运行变慢. 1,物理CPU个数:cat /proc ...
- js数组方法之数组变异方法
push.pop.unshift.shift.sort.splice.reverse 以上这些方法都会改变原数组并且 这些方法的返回值是值得注意的有时候可以提高工作效率,比如pop方法的返回值是该元素 ...
- C语言:窗口控制台颜色改变(不断换色)
了解了stdlib头文件中的system 函数之后突发奇想想要做一个蹦迪效果后台 代码如下: #include <stdio.h> #include <stdlib.h> #i ...
- OAI SDR LTE 基站部署
目录 文章目录 目录 硬件设备要求 物料购买 部署架构图 安装 LTE/EPC 前期准备 运维相关 操作系统要求 内核要求 CPU Frequency scaling,将 CPU 频率打满 eNode ...
- 推荐一款微信公众平台Python开发神器!
1.引言 在当今数字化时代,微信公众平台成为了企业和个人连接用户的重要渠道.为了高效地管理和与用户互动,开发者需要一个强大而灵活的工具. Weixin-Python 正是这样一个为微信公众平台量身打造 ...
- 微信H5分享不能展示卡片问题
来源与微信开放社区 微信H5已成功接入,微信api以及配置项验证正常,通过手机微信里面链接打开页面进行分享,分享出去的还是链接, 需要从以下场景进入才可以正常分享卡片 从二维码进入 分享卡片进入 公众 ...
- Asp-Net-Core开发笔记:给SwaggerUI加上登录保护功能
前言 在 SwaggerUI 中加入登录验证,是我很早前就做过的,不过之前的做法总感觉有点硬编码,最近 .Net8 增加了一个新特性:调用 MapSwagger().RequireAuthorizat ...
- Ceph 架构以及部署
目录 Ceph架构 存储类型 为什么用到Ceph? 1. NFS 2. MooseFS MooseFS瓶颈 3. GlusterFS 4. Ceph Ceph的组件 Ceph部署 前期准备 1.1 修 ...
- 判断是不是ie浏览器 加上ie11
var b_version = navigator.appVersion; var version = b_version.split(";"); var trim_Version ...