最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解在idea 中使用Mybatis Generator逆向工程生成代碼

 更新時(shí)間:2020年12月15日 09:26:09   作者:殤灬央  
這篇文章主要介紹了在idea 中使用Mybatis Generator逆向工程生成代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

通過(guò)MAVEN完成 Mybatis 逆向工程

1. POM文件中添加插件

在 pom 文件的build 標(biāo)簽中 添加 plugin 插件和 數(shù)據(jù)庫(kù)連接 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>
        <!-- 輸出詳細(xì)信息 -->
        <verbose>true</verbose>
        <!-- 覆蓋生成文件 -->
        <overwrite>true</overwrite>
        <!-- 定義配置文件 -->
        <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
      </configuration>
    </plugin>
  </plugins>
</build>

若不在pom文件中引入數(shù)據(jù)庫(kù)連接依賴,也可在配置文件中通過(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)包,可選擇本地硬盤上面的數(shù)據(jù)庫(kù)驅(qū)動(dòng)包-->
  <classPathEntry location="D:\Maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>

  <!-- targetRuntime 默認(rèn)為MyBatis3DynamicSql,該值不會(huì)生成xml文件, 可選擇Mybatis3 -->
  <context id="default" targetRuntime="Mybatis3">

    <!-- optional,旨在創(chuàng)建class時(shí),對(duì)注釋進(jìn)行控制 -->
    <commentGenerator>
      <!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
      <property name="suppressAllComments" value="true" />
    </commentGenerator>

    <!-- 配置數(shù)據(jù)庫(kù)連接 -->
    <jdbcConnection
        driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"
        userId="root"
        password="123456">
    </jdbcConnection>

    <!-- 非必需,類型處理器,在數(shù)據(jù)庫(kù)類型和java類型之間的轉(zhuǎn)換控制-->
    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- Model模型生成器,用來(lái)生成含有主鍵key的類,記錄類 以及查詢Example類
       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ì)類CHAR類型的列的數(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>

    <!-- 客戶端代碼,生成易于使用的針對(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í)體類。(若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 id="insert" useGeneratedKeys="true" keyProperty="agingDemotionId"
      parameterType="com.jd.aging.presentation.domain.AgingDemotionEntity">

這種方式只適用于傳入對(duì)象時(shí),insert方法成功依舊返回的是 1, 不過(guò)傳入的實(shí)體類對(duì)象中 主鍵 ID 的值 不再為 null, 而是獲得該插入實(shí)體類的主鍵ID值。

到此這篇關(guān)于詳解在idea 中使用Mybatis Generator逆向工程生成代碼的文章就介紹到這了,更多相關(guān)MAVEN完成 Mybatis 逆向工程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java那點(diǎn)兒事之Map集合不為人知的秘密有哪些

    Java那點(diǎn)兒事之Map集合不為人知的秘密有哪些

    Map用于保存具有映射關(guān)系的數(shù)據(jù),Map集合里保存著兩組值,一組用于保存Map的key,另一組保存著Map的value,和查字典類似,通過(guò)key找到對(duì)應(yīng)的value,通過(guò)頁(yè)數(shù)找到對(duì)應(yīng)的信息。用學(xué)生類來(lái)說(shuō),key相當(dāng)于學(xué)號(hào),value對(duì)應(yīng)name,age,sex等信息。用這種對(duì)應(yīng)關(guān)系方便查找
    2021-10-10
  • Java虛擬機(jī)最多支持多少個(gè)線程的探討

    Java虛擬機(jī)最多支持多少個(gè)線程的探討

    這篇文章主要介紹了Java虛擬機(jī)最多支持多少個(gè)線程的問(wèn)題,從StackOverflow上摘錄而來(lái),需要的朋友可以參考下
    2014-04-04
  • Android開(kāi)發(fā)中實(shí)現(xiàn)用戶注冊(cè)和登陸的代碼實(shí)例分享

    Android開(kāi)發(fā)中實(shí)現(xiàn)用戶注冊(cè)和登陸的代碼實(shí)例分享

    這篇文章主要介紹了Android開(kāi)發(fā)中實(shí)現(xiàn)用戶注冊(cè)和登陸的代碼實(shí)例分享,只是實(shí)現(xiàn)基本功能,界面華麗度就請(qǐng)忽略啦XD 需要的朋友可以參考下
    2015-12-12
  • Java獲取凌晨時(shí)間戳的方法分析

    Java獲取凌晨時(shí)間戳的方法分析

    這篇文章主要介紹了Java獲取凌晨時(shí)間戳的方法,結(jié)合實(shí)例形式對(duì)比分析了java時(shí)間戳運(yùn)算的簡(jiǎn)單操作技巧,需要的朋友可以參考下
    2018-03-03
  • springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫(kù)配置過(guò)程

    springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫(kù)配置過(guò)程

    這篇文章主要介紹了springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫(kù)配置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析

    Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java class文件格式之?dāng)?shù)據(jù)類型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java class文件格式之?dāng)?shù)據(jù)類型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java class文件格式之?dāng)?shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java使用Runnable接口創(chuàng)建線程的示例代碼

    Java使用Runnable接口創(chuàng)建線程的示例代碼

    在Java中,多線程編程是實(shí)現(xiàn)并發(fā)操作的重要手段之一,通過(guò)多線程,程序可以同時(shí)執(zhí)行多個(gè)任務(wù),從而提高應(yīng)用程序的效率和響應(yīng)速度,Java提供了多種創(chuàng)建線程的方式,其中實(shí)現(xiàn)Runnable接口是最常見(jiàn)且推薦的方式之一,本文將詳細(xì)介紹如何使用Runnable接口創(chuàng)建線程
    2025-02-02
  • Spring中容器創(chuàng)建的四種方式示例

    Spring中容器創(chuàng)建的四種方式示例

    這篇文章主要介紹了Spring中容器創(chuàng)建的四種方式示例,Spring容器是Spring框架的核心部分,它負(fù)責(zé)管理和組織應(yīng)用程序中的對(duì)象,它提供了一種輕量級(jí)的、非侵入式的方式來(lái)實(shí)現(xiàn)對(duì)象的創(chuàng)建、依賴注入和生命周期管理,需要的朋友可以參考下
    2023-10-10
  • Java中的線程池ThreadPoolExecutor細(xì)致講解

    Java中的線程池ThreadPoolExecutor細(xì)致講解

    這篇文章主要介紹了Java中的線程池ThreadPoolExecutor細(xì)致講解,線程池是一種基于池化思想管理線程的工具,經(jīng)常出現(xiàn)在多線程服務(wù)器中,如MySQL,線程過(guò)多會(huì)帶來(lái)額外的開(kāi)銷,其中包括創(chuàng)建銷毀線程的開(kāi)銷、調(diào)度線程的開(kāi)銷等等,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

黄陵县| 左权县| 淮北市| 曲沃县| 杂多县| 林甸县| 安岳县| 斗六市| 云南省| 溆浦县| 尼木县| 集安市| 岳普湖县| 忻城县| 麻江县| 平乡县| 阜新| 乐亭县| 北宁市| 河南省| 大理市| 依兰县| 普陀区| 保亭| 东乌| 兖州市| 德庆县| 西林县| 额济纳旗| 阿克陶县| 洛南县| 临夏市| 菏泽市| 肇东市| 阳原县| 从江县| 集安市| 新化县| 连州市| 泸溪县| 炉霍县|