通过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逆向工程生成代码的更多相关文章

  1. 在IDEA中使用MyBatis Generator逆向工程生成代码

    本文介绍一下用Maven工具如何生成Mybatis的代码及映射的文件. 一.配置Maven pom.xml 文件 在pom.xml增加以下插件: <build> <finalName ...

  2. 在IDEA中使用MyBatis Generator自动生成代码

    转载自 https://blog.csdn.net/hua_faded/article/details/78900780 一.配置Maven pom.xml 文件 在pom.xml增加以下插件:   ...

  3. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  4. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  5. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  6. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  7. Mybatis generator 逆向生成代码

    Mybatis generator 逆向生成代码 简单介绍 本文介绍用mybatis逆向生成javaben dao接口 1.创建maven项目 创建相应的包 附上项目创建完成的图片 然后在pom.xm ...

  8. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  9. 【MyBatis学习15】MyBatis的逆向工程生成代码

    1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需 ...

随机推荐

  1. 「NOIP2009」最优贸易 题解

    「NOIP2009」最优贸易 题解 题目TP门 题目描述 \(C\)国有\(n\)个大城市和\(m\)条道路,每条道路连接这\(n\)个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 ...

  2. 玩转 Comparator 和 Comparable 两接口

    最近项目中有排序的需求,就查看了一下Java文档,发现有两个接口都可以进行排序,Comparable 和 Comparator 两接口到底有啥区别?何时用?怎么用?使用场景我都在底下一一研究分享出来: ...

  3. Seay源代码审计系统使用

    Seay源代码审计系统简介 Seay源代码审计系统使用 如何使用"Seay源代码审计系统"扫描源代码漏洞 Seay源代码审计系统下载安装 github-Seay源代码审计系统

  4. java开发两年,连Spring中bean的装配都不知道?你怎么涨薪啊

    Spring 1.1.1.1 创建一个bean package com.zt.spring; public class MyBean { private String userName; privat ...

  5. FL Studio中有关Sub Bass的一些制作与混音技巧

    1.Sub Bass是什么? Sub Bass是一种低沉的低音,其频率大约低于60赫兹,并向下延伸,包括人类所能听到的最低频率,约为20赫兹.在这个范围内,人类的听觉不是很灵敏,所以在这个范围内的声音 ...

  6. k8S 搭建集群

    k8S 搭建集群1:修改主机名称hostnamectl --static set-hostname masterhostnamectl --static set-hostname node1hostn ...

  7. 虚拟机VM14.X安装Mac10.12启动出现问题的解决方法

    虚拟机安装Mac系统,会出现的问题太多,于是乎变记录下来,方便以后使用或者方便大家解决问题. 一:VM14.X安装Mac10.12虚拟机,启动出现下面无限重启问题 解决方法: 亲测有效 在OS X 1 ...

  8. 【R语言入门】R语言中的变量与基本数据类型

    说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...

  9. Linux(Ubuntu16.04)下的MediaWiki的部署启动

    一.服务器部分 使用XAMPP配置MediaWiki部署所需要的环境. 1. 查看服务器的版本与位数: sudo lsb_release -a      //查看系统版本 uname -a       ...

  10. WriteFile,CreateFile,ReadFile

    原文链接:https://blog.csdn.net/Jeanphorn/article/details/44982273 将数据写入一个文件.该函数比fwrite函数要灵活的多.也可将这个函数应用于 ...