詳解在idea 中使用Mybatis Generator逆向工程生成代碼
通過(guò)MAVEN完成 Mybatis 逆向工程
1. POM文件中添加插件
在 pom 文件的build 標(biāo)簽中 添加 plugin 插件和 數(shù)據(jù)庫(kù)連接 jdbc 的依賴(lài)。
<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><!-- 輸出詳細(xì)信息 --><verbose>true</verbose><!-- 覆蓋生成文件 --><overwrite>true</overwrite><!-- 定義配置文件 --><configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile> </configuration> </plugin> </plugins></build>
若不在pom文件中引入數(shù)據(jù)庫(kù)連接依賴(lài),也可在配置文件中通過(guò)本地方式啟動(dòng)連接。
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> <!-- 若想單獨(dú)配置屬性,可將其配入properties后 通過(guò)此方式導(dǎo)入屬性 ${userId} --> <!-- <properties resource='generator.properties'></properties>--> <!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng): 若之前未在build里配置數(shù)據(jù)庫(kù)驅(qū)動(dòng)包,可選擇本地硬盤(pán)上面的數(shù)據(jù)庫(kù)驅(qū)動(dòng)包--> <classPathEntry location='D:Mavenrepositorymysqlmysql-connector-java5.1.38mysql-connector-java-5.1.38.jar'/> <!-- targetRuntime 默認(rèn)為MyBatis3DynamicSql,該值不會(huì)生成xml文件, 可選擇Mybatis3 --> <context targetRuntime='Mybatis3'> <!-- optional,旨在創(chuàng)建class時(shí),對(duì)注釋進(jìn)行控制 --> <commentGenerator> <!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 --> <property name='suppressAllComments' value='true' /> </commentGenerator> <!-- 配置數(shù)據(jù)庫(kù)連接 --> <jdbcConnectiondriverClass='com.mysql.jdbc.Driver'connectionURL='jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai'userId='root'password='123456'> </jdbcConnection> <!-- 非必需,類(lèi)型處理器,在數(shù)據(jù)庫(kù)類(lèi)型和java類(lèi)型之間的轉(zhuǎn)換控制--> <javaTypeResolver > <property name='forceBigDecimals' value='false' /> </javaTypeResolver> <!-- Model模型生成器,用來(lái)生成含有主鍵key的類(lèi),記錄類(lèi) 以及查詢(xún)Example類(lèi) targetPackage 指定生成的model生成所在的包名 targetProject 指定在該項(xiàng)目下所在的路徑 --> <javaModelGenerator targetPackage='com.demo.dao.pojo' targetProject='src/main/java'> <!-- 是否允許子包,即targetPackage.schemaName.tableName --> <property name='enableSubPackages' value='true'/> <!-- 是否對(duì)model添加 構(gòu)造函數(shù) --> <property name='constructorBased' value='false'/> <!-- 是否對(duì)類(lèi)CHAR類(lèi)型的列的數(shù)據(jù)進(jìn)行trim操作 --> <property name='trimStrings' value='false'/> <!-- 建立的Model對(duì)象是否 不可改變 即生成的Model對(duì)象不會(huì)有 setter方法,只有構(gòu)造方法 --> <property name='immutable' value='true'/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage='mapper' targetProject='src/main/resources'> <property name='enableSubPackages' value='false'/> </sqlMapGenerator> <!-- 客戶(hù)端代碼,生成易于使用的針對(duì)Model對(duì)象和XML配置文件 的代碼type='ANNOTATEDMAPPER',生成Java Model 和基于注解的Mapper對(duì)象type='MIXEDMAPPER',生成基于注解的Java Model 和相應(yīng)的Mapper對(duì)象type='XMLMAPPER',生成SQLMap XML文件和獨(dú)立的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'> <!-- 插入時(shí)自動(dòng)返回主鍵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官網(wǎng):http://mybatis.org/generator/configreference/xmlconfig.html
3.通過(guò)maven啟動(dòng)點(diǎn)擊mybatis-generate:generate即可生成對(duì)應(yīng) java,mapper 和 pojo實(shí)體類(lèi)。(若maven沒(méi)有顯示此插件,可點(diǎn)擊左上角刷新)
4.Insert時(shí)返回自增主鍵通過(guò)generatedKey 使其插入時(shí)返回ID,其值必須為數(shù)值型自增主鍵。
其逆向生成的代碼為:
<selectKey keyProperty='agingDemotionId' order='AFTER' resultType='java.lang.Long'> SELECT LAST_INSERT_ID()</selectKey>
也可自己通過(guò)這種方式實(shí)現(xiàn)返回自增ID。
<insert useGeneratedKeys='true' keyProperty='agingDemotionId' parameterType='com.jd.aging.presentation.domain.AgingDemotionEntity'>
這種方式只適用于傳入對(duì)象時(shí),insert方法成功依舊返回的是 1, 不過(guò)傳入的實(shí)體類(lèi)對(duì)象中 主鍵 ID 的值 不再為 null, 而是獲得該插入實(shí)體類(lèi)的主鍵ID值。
到此這篇關(guān)于詳解在idea 中使用Mybatis Generator逆向工程生成代碼的文章就介紹到這了,更多相關(guān)MAVEN完成 Mybatis 逆向工程內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 如何基于python3和Vue實(shí)現(xiàn)AES數(shù)據(jù)加密2. 10個(gè)提供免費(fèi)PHP腳本下載的網(wǎng)站3. PHP擴(kuò)展之APC——Alternative PHP Cache(可選PHP緩存)4. PHP設(shè)計(jì)模式(四)原型模式Prototype實(shí)例詳解【創(chuàng)建型】5. Java 基于UDP協(xié)議實(shí)現(xiàn)消息發(fā)送6. Python編寫(xiě)nmap掃描工具7. Java向Runnable線(xiàn)程傳遞參數(shù)方法實(shí)例解析8. python 爬取嗶哩嗶哩up主信息和投稿視頻9. ASP.NET MVC前臺(tái)動(dòng)態(tài)添加文本框并在后臺(tái)使用FormCollection接收值10. php5.6不能擴(kuò)展redis.so的解決方法
