詳解在idea 中使用Mybatis Generator逆向工程生成代碼
通過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
<?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'> <generatorConfiguration> <!-- 若想單獨配置屬性,可將其配入properties后 通過此方式導入屬性 ${userId} --> <!-- <properties resource='generator.properties'></properties>--> <!-- 數據庫驅動: 若之前未在build里配置數據庫驅動包,可選擇本地硬盤上面的數據庫驅動包--> <classPathEntry location='D:Mavenrepositorymysqlmysql-connector-java5.1.38mysql-connector-java-5.1.38.jar'/> <!-- targetRuntime 默認為MyBatis3DynamicSql,該值不會生成xml文件, 可選擇Mybatis3 --> <context targetRuntime='Mybatis3'> <!-- optional,旨在創建class時,對注釋進行控制 --> <commentGenerator> <!-- 是否去除自動生成的注釋 true:是 : false:否 --> <property name='suppressAllComments' value='true' /> </commentGenerator> <!-- 配置數據庫連接 --> <jdbcConnectiondriverClass='com.mysql.jdbc.Driver'connectionURL='jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai'userId='root'password='123456'> </jdbcConnection> <!-- 非必需,類型處理器,在數據庫類型和java類型之間的轉換控制--> <javaTypeResolver > <property name='forceBigDecimals' value='false' /> </javaTypeResolver> <!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類 targetPackage 指定生成的model生成所在的包名 targetProject 指定在該項目下所在的路徑 --> <javaModelGenerator targetPackage='com.demo.dao.pojo' targetProject='src/main/java'> <!-- 是否允許子包,即targetPackage.schemaName.tableName --> <property name='enableSubPackages' value='true'/> <!-- 是否對model添加 構造函數 --> <property name='constructorBased' value='false'/> <!-- 是否對類CHAR類型的列的數據進行trim操作 --> <property name='trimStrings' value='false'/> <!-- 建立的Model對象是否 不可改變 即生成的Model對象不會有 setter方法,只有構造方法 --> <property name='immutable' value='true'/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage='mapper' targetProject='src/main/resources'> <property name='enableSubPackages' value='false'/> </sqlMapGenerator> <!-- 客戶端代碼,生成易于使用的針對Model對象和XML配置文件 的代碼type='ANNOTATEDMAPPER',生成Java Model 和基于注解的Mapper對象type='MIXEDMAPPER',生成基于注解的Java Model 和相應的Mapper對象type='XMLMAPPER',生成SQLMap XML文件和獨立的Mapper接口 --> <javaClientGenerator targetPackage='com.demo.dao.mapper' targetProject='src/main/java' type='XMLMAPPER'> <property name='enableSubPackages' value='false'/> </javaClientGenerator> <table tableName='aging_demotion' domainObjectName='AgingDemotion'enableCountByExample='false' enableUpdateByExample='false'enableDeleteByExample='false' enableSelectByExample='false'selectByExampleQueryId='false'> <!-- 插入時自動返回主鍵ID --> <generatedKey column='aging_demotion_id' sqlStatement='Mysql' identity='true' /> </table> <table tableName='aging_listener' domainObjectName='AgingListener'enableCountByExample='false' enableUpdateByExample='false'enableDeleteByExample='false' enableSelectByExample='false'selectByExampleQueryId='false'> </table> <table tableName='aging_state' domainObjectName='AgingState'enableCountByExample='false' enableUpdateByExample='false'enableDeleteByExample='false' enableSelectByExample='false'selectByExampleQueryId='false'> </table> </context></generatorConfiguration>
XML配置信息可參考mybatis官網:http://mybatis.org/generator/configreference/xmlconfig.html
3.通過maven啟動點擊mybatis-generate:generate即可生成對應 java,mapper 和 pojo實體類。(若maven沒有顯示此插件,可點擊左上角刷新)
4.Insert時返回自增主鍵通過generatedKey 使其插入時返回ID,其值必須為數值型自增主鍵。
其逆向生成的代碼為:
<selectKey keyProperty='agingDemotionId' order='AFTER' resultType='java.lang.Long'> SELECT LAST_INSERT_ID()</selectKey>
也可自己通過這種方式實現返回自增ID。
<insert useGeneratedKeys='true' keyProperty='agingDemotionId' parameterType='com.jd.aging.presentation.domain.AgingDemotionEntity'>
這種方式只適用于傳入對象時,insert方法成功依舊返回的是 1, 不過傳入的實體類對象中 主鍵 ID 的值 不再為 null, 而是獲得該插入實體類的主鍵ID值。
到此這篇關于詳解在idea 中使用Mybatis Generator逆向工程生成代碼的文章就介紹到這了,更多相關MAVEN完成 Mybatis 逆向工程內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
