最近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. 关于JS、JQ首行首列固定展示

    当时遇见这个问题 是医院手麻系统大批量数据展示,由于是旧项目系统没有使用到前端的架构 只能使用JQ,JS, css完成 也谢谢给予我支持的同行们 固定首行数据: 采用函数的方式进行  JQ /** * ...

  2. redis订阅者与发布者

    #conding=utf-8 #一.创建redis类 文件名 RedisHelper import redis # conn=redis.Redis(host='127.0.0.1')# import ...

  3. Reactv16.8.6生命周期函数

    组件生命周期函数 React 主动调用的方法,也可重写这些方法 生命周期图谱 当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下: constructor(props) 如果不需要初始化 s ...

  4. 【iOS】No suitable application records found

    昨天提交 Apple 审核时遇到这个问题,如图: 原来是还没在 iTunes Connect 创建 APP ... 一时着急大意了…… 后来想想还真是脑子一时没反应过来……

  5. web图形验证码逻辑

    逻辑:前端生成一个UUID以URL方式发送给后端,后端准备Redis数据库缓存数据,后端拿到UUID后,调用captcha.generate_captcha()生成图片和图片的标签,Redis数据库保 ...

  6. python创建虚拟环境(Windows)

    >>>构建Python虚拟环境的目的是为了防止真实环境被破坏!!! >>>每一个项目建议用一个虚拟环境为了防止软件版本号冲突!!! 1.在终端切换到一个新的磁盘 如 ...

  7. 如何让传统ASP.NET网站在Docker中运行

    本文主要描述如何让传统ASP.NET网站在Docker中运行,侧重Docker image 搭建. 使用条件: Docker for windows 用户切换到Windows 容器模式 Windows ...

  8. 最基础的 ant build 脚本

    最基础的 ant build 脚本,根据项目,自行进行修改 <?xml version="1.0" encoding="UTF-8" ?> < ...

  9. Go中sync包学习

    前面刚讲到goroutine和channel,通过goroutine启动一个协程,通过channel的方式在多个goroutine中传递消息来保证并发安全.今天我们来学习sync包,这个包是Go提供的 ...

  10. nodeJs跨域设置(express,koa2,eggJs)

    原生跨域 var http=require('http'); var server = http.createServer(function (req,res) { res.setHeader('Ac ...