如何优雅地使用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" & ...
随机推荐
- 让AnaTraf成为您网络流量分析的最佳利器
在快速发展的数字时代,企业对网络性能的监测与分析需求愈加旺盛.作为网络性能监测与诊断(NPMD)领域的佼佼者,AnaTraf网络流量分析仪凭借其出色的性能和易用性,正成为网络管理人员的首选工具. An ...
- next-元数据创建、更新 SEO 优化
在创建Next.js项目时,根页面会自动生成一个metadata对象,其中包含标题和描述等关键信息.每当页面被访问时,这个metadata对象会被读取并应用到HTML的默认配置中,确保页面的基本信息得 ...
- 记一次 .NET某酒店后台服务 卡死分析
一:背景 1. 讲故事 停了一个月没有更新文章了,主要是忙于写 C#内功修炼系列的PPT,现在基本上接近尾声,可以回头继续更新这段时间分析dump的一些事故报告,有朋友微信上找到我,说他们的系统出现了 ...
- Django——启动项目时报错mysqlclient
报错内容如下: Watching for file changes with StatReloader Exception in thread django-main-thread: Tracebac ...
- .net core 关于对swagger的UI(Index.html)或接口的权限验证;
背景: 如何在ASP.Net Core的生产环境中保护swagger ui,也就是index.html页面.其实swagger是自带禁用的功能的,只需要设置开关即可.但是有一些场景,是需要把这些接口进 ...
- WPF中 x:Name和Name的区别
x:Name 唯一地标识 XAML 定义的对象,以便于从代码隐藏或通用代码中访问对象图中实例化的对象.x:Name 一旦应用于支持编程模型,便可被视为与由构造函数返回的用于保存对象引用或实例的变量等效 ...
- 鸿蒙极速入门(三)-TypeScript语言简介
ArkTS是HarmonyOS优选的主力应用开发语言.ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集.因此,在学习ArkTS语言之 ...
- FastJson转Java对像字段不区分大小写
昨天遇到参数key大小写不一致导致校验签名失败的问题,查了很长时间才找到原因.看了一下FastJson源码,发现JSON.toObject中转换成对象的时候会忽略大小写. 所以,当使用了JSON.to ...
- CSP-S2019 江西 题解
为什么有 \(5\) 道题? [CSP-S2019 江西] 和积和 简单化一下式子: \[(n + 1) \times \sum A_i \times B_i - (\sum A_i) \times ...
- AT_agc044_c
problem & blog 由于看到和三进制有关的操作,可以想到建造每个结点都有三个儿子的 Trie.考虑维护两种操作. 1.Salasa 舞 对于这种操作,就是把每一个节点的第一个儿子和第 ...