您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在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:\Maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/> <!-- targetRuntime 默認為MyBatis3DynamicSql,該值不會生成xml文件, 可選擇Mybatis3 --> <context id="default" targetRuntime="Mybatis3"> <!-- optional,旨在創建class時,對注釋進行控制 --> <commentGenerator> <!-- 是否去除自動生成的注釋 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 配置數據庫連接 --> <jdbcConnection driverClass="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
點擊mybatis-generate:generate即可生成對應 java,mapper 和 pojo實體類。(若maven沒有顯示此插件,可點擊左上角刷新)
通過generatedKey 使其插入時返回ID,其值必須為數值型自增主鍵。
其逆向生成的代碼為:
<selectKey keyProperty="agingDemotionId" order="AFTER" resultType="java.lang.Long"> SELECT LAST_INSERT_ID() </selectKey>
也可自己通過這種方式實現返回自增ID。
<insert id="insert" useGeneratedKeys="true" keyProperty="agingDemotionId" parameterType="com.jd.aging.presentation.domain.AgingDemotionEntity">
這種方式只適用于傳入對象時,insert方法成功依舊返回的是 1, 不過傳入的實體類對象中 主鍵 ID 的值 不再為 null, 而是獲得該插入實體類的主鍵ID值。
看完上述內容,你們對如何在idea 中利用Mybatis與Generator實現一個逆向工程有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。