Springboot學習與mybatis逆向生成工具

最近H2數據庫越用越以爲方便,在不一樣辦公處無縫繼續demo的感受就是爽。html

 
今天接上一篇Springboot簡潔整合mybatis,補上sts(即eclipse)使用mybatis generator逆向生成實體和SQL映射文件,提升開發效率。

三種方式

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

直男君梳理了官方文檔和網友博客,把最靠譜的上面三種都試了一遍,最終結果是Maven插件方式最爲簡單有效。java

1)官方Java程序方式spring

分爲兩種,直接執行jar包方式:sql

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

和 編寫可執行Java類方式(官網截圖):數據庫

 
這種方式的好處是不依賴第三方環境,僅須要mybatis的jar包就OK,通用化,缺點就是麻!煩!。

2)Maven插件方式mybatis

簡單有效,下面就會細說具體步驟。app

3)sts/eclipse插件方式dom

安裝插件嘛~講道理是最簡單的方式..可是直男君安裝好了後各類問題。eclipse

三種方式在官方網站(http://www.mybatis.org/generator/quickstart.html)上都有介紹,可做細究參考,好比完整的配置文件項。maven

 
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 保存運行。

 

成功運行日誌:

 

此時刷新項目,能夠看到該有的都有了。

 

檢查生成的文件是否合胃口,以爲不完美的話適當調整配置覆蓋生成便可。

OK,打完收工。歡迎踩點吐槽,點贊收藏轉發,3Q!

相關文章
相關標籤/搜索