最近H2数据库越用越觉得方便,在不同办公处无缝继续demo的感觉就是爽。

 
今天接上一篇Springboot简洁整合mybatis,补上sts(即eclipse)使用mybatis generator逆向生成实体和SQL映射文件,提高开发效率。

三种方式

  • 官方Java程序方
  • Maven插件方式(推荐)
  • sts/eclipse插件方式

直男君梳理了官方文档和网友博客,把最靠谱的上面三种都试了一遍,最终结果是Maven插件方式最为简单有效。

1)官方Java程序方式

分为两种,直接执行jar包方式:

java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite

和 编写可执行Java类方式(官网截图):

 
这种方式的好处是不依赖第三方环境,仅需要mybatis的jar包就OK,通用化,缺点就是麻!烦!。

2)Maven插件方式

简单有效,下面就会细说具体步骤。

3)sts/eclipse插件方式

安装插件嘛~讲道理是最简单的方式..但是直男君安装好了后各种问题。

三种方式在官方网站(http://www.mybatis.org/generator/quickstart.html)上都有介绍,可作细究参考,比如完整的配置文件项。

 
PS:不论哪种方式,都需要一个核心配置文件 generatorConfig.xml

Maven插件方式步骤

1)修改数据库连接信息

这里说明一点,直男君数据源用的是H2,发现H2内存模式下,逆向生成会遇阻(连接限制问题),所以把H2内存模式改为文件模式。改动很简单,将H2连接的url改为实际路径就好,其他不用变,demo应用启动下(为了生成初始化库信息),这样mybatis逆向工程就可以连接到了(JDBC) 。PS:使用MySQL的话,不用管这步。

修改application.properties文件配置:

#配置 h2 数据源
#spring.datasource.url=jdbc:h2:mem:test
spring.datasource.url=jdbc:h2:~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=123456
spring.datasource.schema=classpath:h2sql/schema.sql
spring.datasource.data=classpath:h2sql/data.sql
spring.h2.console.enabled=true
#localhost:8080/demo/h2-console
spring.h2.console.path=/h2-console

说明:~/test 配置后,以win系统为例,生成的H2数据库文件路径:C:\Users\Richard\test.mv.db,~ 代表用户家目录。

2).pom文件中添加插件

<!-- maven build.. >> mybatis-generator:generate -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>

3)添加 generatorConfig.xml(src/main/resources)

贴上本次demo的完整配置模版(注意包路径):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- mybatis-maven插件使用快捷参考: https://blog.csdn.net/MissWwg/article/details/79159590-->
<!-- 官方参考: http://www.mybatis.org/generator/configreference/xmlconfig.html-->
<!-- 配置完整说明:https://blog.csdn.net/pk490525/article/details/16819307 -->
<generatorConfiguration>
<properties resource="jdbc.properties" />
<!-- 驱动jar包 -->
<classPathEntry location="D:\maven-repo\com\h2database\h2\1.4.199\h2-1.4.199.jar" />
<!-- 一个数据库一个 context -->
<context id="myh2db" targetRuntime="MyBatis3">
<!-- 生成注释配置 -->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- JDBC连接配置 -->
<jdbcConnection
driverClass="${h2.driver}"
connectionURL="${h2.url}"
userId="${h2.username}"
password="${h2.passwd}">
</jdbcConnection>
<!-- 类型转换 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 实体bean 逆向生成 -->
<javaModelGenerator targetPackage="com.demo.bean.entity" targetProject="src/main/java">
<property name="trimStrings" value="false" />
<property name="enableSubPackages" value="false" />
</javaModelGenerator>
<!-- sqlmap.xml 逆向生成 -->
<sqlMapGenerator targetPackage="sqlmap" targetProject="src/main/resources">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 客户端即 Mapper接口 逆向生成 type=[XMLMAPPER, MIXEDMAPPER, ANNOTATEDMAPPER]-->
<javaClientGenerator targetPackage="com.demo.mapper" targetProject="src/main/java"
type="MIXEDMAPPER">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 目标表配置 schema为啥不能加 -->
<table tableName="tb_fake" domainObjectName="Fake"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>

4)新建配置所需的包和项目结构

 

5)保存配置,检查数据库表和项目结构无误后,执行插件。

右键.pom >> Run As.. >> Maven Build... >>在 Goals 中写入 mybatis-generator:generate 保存运行。

 

成功运行日志:

 

此时刷新项目,可以看到该有的都有了。

 

检查生成的文件是否合胃口,觉得不完美的话适当调整配置覆盖生成即可。

Springboot学习与mybatis逆向生成工具的更多相关文章

  1. 「小程序JAVA实战」Springboot版mybatis逆向生成工具(32)

    转自:https://idig8.com/2018/08/29/xiaochengxujavashizhanspringbootbanmybatisnixiangshengchenggongju32/ ...

  2. 【SSM 4】Mybatis逆向生成工具

    在上一篇博客中说到,Mybatis是灵活的SQL语句应用,不想Hibernate一样有其封装好的方法,那么,当我们用Mybatis的时候(Hibernate),我们都需要编写其实体类,和配置文件.本篇 ...

  3. myBatis逆向生成及使用

    引入数据库驱动 <!-- mybatis逆向生成包 --><dependency> <groupId>org.mybatis.generator</group ...

  4. Mybatis逆向生成

    在已经有了数据库的表的时候,为了方便起见,我们可以逆向生成javabean,xml,dao接口等,当然,下载mybaits-generation的工具,我这里用的是eclipse插件,然后准备一 个x ...

  5. Mybatis逆向生成使用扩展类

    1.背景介绍 用的mybatis自动生成的插件,然而每次更改数据库的时候重新生成需要替换原有的mapper.xml文件,都要把之前业务相关的sql重新写一遍,感觉十分麻烦,就想着把自动生成的作为一个基 ...

  6. 一步步学Mybatis-告别繁琐的配置之Mybatis配置文件生成工具 (7)

    今年是2013年的杀青之日,前几天由于比较忙,没有及时更新本篇的最后一篇东西,前六篇中我们主要都是采用手动配置相关的Mybatis映射文件与相应的接口类与实体类.当然如果在真正的使用过程中,由于业务的 ...

  7. Mybatis逆向生成代碼

    Idea 单模块 1.在pom.xml中添加依赖 <build> <plugins> <plugin> <groupId>org.mybatis.gen ...

  8. Mybatis Generator生成工具配置文件详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  9. Mybatis逆向生成Mapper文件

    本文参考博客 http://blog.csdn.net/for_my_life/article/details/51228098 1. 在resources根目录下添加generator.proper ...

随机推荐

  1. Ubuntu16.04配置Django服务器环境

    本环境是使用Ubuntu16.04+Django2.1.0+python3.6+uwsgi+nginx进行配置 1. 安装python3.6 Ubuntu16.04中原本安装的是python3.5,但 ...

  2. 用margin还是padding ?

    margin是用来隔开元素与元素的间距:padding是用来隔开元素与内容的间隔. margin用于布局分开元素使元素与元素互不相干:padding用于元素与内容之间的间隔,让内容(文字)与(包裹)元 ...

  3. WebRTC:会话描述协议SDP

    什么是SDP SDP(Session Description Protocol)是一种通用的会话描述协议,主要用来描述多媒体会话,用途包括会话声明.会话邀请.会话初始化等. WebRTC主要在连接建立 ...

  4. HTTP_2_HTTP协议概要

    http协议概要 HTTP 通信对象 通信方式 通信状态 定位资源 节省通信量 超文本传输协议 客户端与服务器端 请求和响应 不保存状态(借助cookie) 请求URI keep-alive/pipe ...

  5. python 感悟

    * 优美胜于丑陋.* 显式胜于隐式.* 简单胜于复杂.* 复杂胜于难懂.* 扁平胜于嵌套.* 稀疏胜于紧密.* 可读性应当被重视.* 尽管实用性会打败纯粹性,特例也不能凌驾于规则之上.* 不要忽略任何 ...

  6. 关于报错:The Microsoft.ACE. Oledb.12.0 provider was not registered on the local computer

    错误描述:The Microsoft.ACE. Oledb.12.0 provider was not registered on the local computer 最近在Web项目中做一个自动生 ...

  7. 【算法】【查找】二分法 Bisection

    #include<stdio.h> int main(){ ,,,,,,,,,,,,,,}; ; //长度 ; //要查找到的值 int Bisection(int x,int* a,in ...

  8. 大厂面试Kafka,一定会问到的幂等性

    01 幂等性如此重要 Kafka作为分布式MQ,大量用于分布式系统中,如消息推送系统.业务平台系统(如结算平台),就拿结算来说,业务方作为上游把数据打到结算平台,如果一份数据被计算.处理了多次,产生的 ...

  9. 9个tcpdump使用实例

    tcpdump能帮助我们捕捉并保存网络包,保存下来的网络包可用于分析网络负载情况,包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看. 以下将给出9 ...

  10. AutoCAD二次开发(.Net)之创建图层Layer

    //https://blog.csdn.net/qq_21489689?t=1[CommandMethod("CREATELY")] public void CreateLayer ...