idea 中使用Mybatis Generator逆向工程生成代码
通过MAVEN完成 Mybatis 逆向工程
1. POM文件中添加插件
在 pom 文件的build 标签中 添加 plugin 插件和 数据库连接 jdbc 的依赖。
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
</dependencies>
<configuration>
<!-- 输出详细信息 -->
<verbose>true</verbose>
<!-- 覆盖生成文件 -->
<overwrite>true</overwrite>
<!-- 定义配置文件 -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
</plugin>
</plugins>
</build>
若不在pom文件中引入数据库连接依赖,也可在配置文件中通过本地方式启动连接。
2. 在自己定义的位置上添加配置文件 generatorConfig.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE generatorConfiguration
3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
5 <generatorConfiguration>
6 <!-- 若想单独配置属性,可将其配入properties后 通过此方式导入属性 ${userId} -->
7 <!-- <properties resource="generator.properties"></properties>-->
8
9 <!-- 数据库驱动: 若之前未在build里配置数据库驱动包,可选择本地硬盘上面的数据库驱动包-->
10 <classPathEntry location="D:\Maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>
11
12 <!-- targetRuntime 默认为MyBatis3DynamicSql,该值不会生成xml文件, 可选择Mybatis3 -->
13 <context id="default" targetRuntime="Mybatis3">
14
15 <!-- optional,旨在创建class时,对注释进行控制 -->
16 <commentGenerator>
17 <!-- 是否去除自动生成的注释 true:是 : false:否 -->
18 <property name="suppressAllComments" value="true" />
19 </commentGenerator>
20
21 <!-- 配置数据库连接 -->
22 <jdbcConnection
23 driverClass="com.mysql.jdbc.Driver"
24 connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"
25 userId="root"
26 password="123456">
27 </jdbcConnection>
28
29 <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
30 <javaTypeResolver >
31 <property name="forceBigDecimals" value="false" />
32 </javaTypeResolver>
33
34 <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
35 targetPackage 指定生成的model生成所在的包名
36 targetProject 指定在该项目下所在的路径
37 -->
38 <javaModelGenerator targetPackage="com.demo.dao.pojo" targetProject="src/main/java">
39 <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
40 <property name="enableSubPackages" value="true"/>
41 <!-- 是否对model添加 构造函数 -->
42 <property name="constructorBased" value="false"/>
43 <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
44 <property name="trimStrings" value="false"/>
45 <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
46 <property name="immutable" value="true"/>
47 </javaModelGenerator>
48
49 <!-- 生成映射文件的包名和位置-->
50 <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
51 <property name="enableSubPackages" value="false"/>
52 </sqlMapGenerator>
53
54 <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
55 type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
56 type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
57 type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
58 -->
59 <javaClientGenerator targetPackage="com.demo.dao.mapper" targetProject="src/main/java" type="XMLMAPPER">
60 <property name="enableSubPackages" value="false"/>
61 </javaClientGenerator>
62 <table tableName="aging_demotion" domainObjectName="AgingDemotion"
63 enableCountByExample="false" enableUpdateByExample="false"
64 enableDeleteByExample="false" enableSelectByExample="false"
65 selectByExampleQueryId="false">
66 <!-- 插入时自动返回主键ID -->
67 <generatedKey column="aging_demotion_id" sqlStatement="Mysql" identity="true" />
68 </table>
69
70 <table tableName="aging_listener" domainObjectName="AgingListener"
71 enableCountByExample="false" enableUpdateByExample="false"
72 enableDeleteByExample="false" enableSelectByExample="false"
73 selectByExampleQueryId="false">
74 </table>
75
76 <table tableName="aging_state" domainObjectName="AgingState"
77 enableCountByExample="false" enableUpdateByExample="false"
78 enableDeleteByExample="false" enableSelectByExample="false"
79 selectByExampleQueryId="false">
80 </table>
81 </context>
82 </generatorConfiguration>
XML配置信息可参考mybatis官网:http://mybatis.org/generator/configreference/xmlconfig.html
3.Insert时返回自增主键。
通过generatedKey 使其插入时返回ID,其值必须为数值型自增主键。
其逆向生成的代码为:
<selectKey keyProperty="agingDemotionId" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
也可自己通过这种方式实现返回自增ID。
<insert id="insert" useGeneratedKeys="true" keyProperty="agingDemotionId"
parameterType="com.jd.aging.presentation.domain.AgingDemotionEntity">
这种方式只适用于传入对象时,insert方法成功依旧返回的是 1, 不过传入的实体类对象中 主键 ID 的值 不再为 null, 而是获得该插入实体类的主键ID值。

如果有错误或者更优化的解决方案,欢迎大家在评论区留言探讨。
也可以给我的个人公众号私信留言。

idea 中使用Mybatis Generator逆向工程生成代码的更多相关文章
- 在IDEA中使用MyBatis Generator逆向工程生成代码
本文介绍一下用Maven工具如何生成Mybatis的代码及映射的文件. 一.配置Maven pom.xml 文件 在pom.xml增加以下插件: <build> <finalName ...
- 在IDEA中使用MyBatis Generator自动生成代码
转载自 https://blog.csdn.net/hua_faded/article/details/78900780 一.配置Maven pom.xml 文件 在pom.xml增加以下插件: ...
- idea中mybatis generator自动生成代码配置 数据库是sqlserver
好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...
- SpringBoot 添加mybatis generator 自动生成代码插件
自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...
- IDEA Maven Mybatis generator 自动生成代码
IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...
- Mybatis generator 逆向生成代码
Mybatis generator 逆向生成代码 简单介绍 本文介绍用mybatis逆向生成javaben dao接口 1.创建maven项目 创建相应的包 附上项目创建完成的图片 然后在pom.xm ...
- IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)
IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...
- 【MyBatis学习15】MyBatis的逆向工程生成代码
1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需 ...
随机推荐
- RedisEclipse
1.Eclipse配置 2.HelloWorld import redis.clients.jedis.Jedis; public class TestPing { public static voi ...
- WireShark——ARP 协议包分析
1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...
- Seay源代码审计系统使用
Seay源代码审计系统简介 Seay源代码审计系统使用 如何使用"Seay源代码审计系统"扫描源代码漏洞 Seay源代码审计系统下载安装 github-Seay源代码审计系统
- jdk的切换
1.下载安装新版本的jdk 2.使用该命令,添加新版jdk alternatives --install /usr/bin/java java /opt/jdk1.8.0_144/bin/java 2 ...
- java开发两年了,连个java代理模式都摸不透,你怎么跳槽涨薪?
前言 代理模式(Proxy Pattern),23种java常用设计模式之一.代理模式的定义:代理类对被代理对象提供一种代理以控制对这个对象的访问.代理类主要负责为委托类预处理消息.过滤消息.把消息转 ...
- 面试官:小伙子,你给我说一下Java Exception 和 Error 的区别吧?
前言 昨天在整理粉丝给我私信的时候,发现了一个挺有意思的事情.是这样的,有一个粉丝朋友私信问我Java 的 Exception 和 Error 有什么区别呢?说他在面试的时候被问到这个问题卡壳了,最后 ...
- 如何使用ABBYY FineReader 识别竖排或反转文本?
ABBYY FineReader 15(Windows系统)OCR文字识别软件拥有强大的OCR识别功能,能够对这些竖排排版的文档进行准确的识别,另外对于一些具有反转颜色(白色字符和黑暗背景的图像)的文 ...
- 手把手教你用思维导图软件iMindMap制作计划表
在日常生活中小编也经常使用思维导图软件iMindMap来创建思维导图以规划工作及学习的安排.尤其是时间安排类型的思维导图,能极大程度的节约我们的时间,接下来就由小编以自己假期的社会实践向大家分享一下怎 ...
- javaAgent打包找不到premain类文件解决
agent 作用和开发 可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序.这种监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等. 由此可知agent ...
- Contest 991
A 先判合法然后容斥. 时间复杂度 \(O\left(1\right)\). B 贪心选最小的实验做成 \(5\) 分. 时间复杂度 \(O\left(n\right)\). 剩下的鸽了.