Springboot学习与mybatis逆向生成工具

最近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 保存运行。

 

成功运行日志:

 

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

 

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

posted @ 2019-05-23 00:22  summaster  阅读(1739)  评论(0编辑  收藏  举报