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

mybatis如何根據(jù)表逆向自動(dòng)化生成代碼實(shí)例

 更新時(shí)間:2021年08月29日 09:20:43   作者:---蔥---  
逆向工程是一個(gè)專門為 MyBatis 框架使用者設(shè)計(jì)的代碼生成器,可以根據(jù)數(shù)據(jù)庫中的表字段名,自動(dòng)生成 POJO 類,mapper 接口與 SQL 映射文件,這篇文章主要給大家介紹了關(guān)于mybatis如何根據(jù)表逆向自動(dòng)化生成代碼的相關(guān)資料,需要的朋友可以參考下

前言

 自動(dòng)生成代碼總結(jié)(1)——(mybatis自動(dòng)生成實(shí)體類、mapper文件、mapper.xml文件)

若采用mybatis框架,數(shù)據(jù)庫新建表,手動(dòng)編寫的話,需要編寫大量的實(shí)體類、mapper文件、mapper.xml文件,都是一些重復(fù)且有規(guī)律的工作。

我們可以引用插件,然后做配置,自動(dòng)生成這些文件,提供工作效率。

本博客包含的內(nèi)容:

 ?、僮詣?dòng)生成插件的引入

  ②定義配置文件

 ?、圻\(yùn)行插件,生成代碼

1.引入插件

在項(xiàng)目的pom文件中引入generator插件

<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <!-- 配置文件存放路徑 -->
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <!-- mysql -->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.46</version>
                    </dependency>
                    <!-- mapper -->
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>3.4.1</version>
                    </dependency>
                </dependencies>
            </plugin>

2.修改generatorConfig.xml文件

注:generatorConfig.xml 一定要放在pom中插件配置的路徑下。

下面給出配置文件中的代碼,代碼中都有注釋。主要注意的點(diǎn)有:

 ?、賘dbc連接 數(shù)據(jù)庫的路徑

 ?、谏蓪?shí)體類存放的路勁

 ?、凵蒻apper.xml存放的路勁

 ?、苌蒻apper文件的存放路徑

  ⑤修改表以及該表對應(yīng)的實(shí)體類名稱

<?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>
    <!--classPathEntry:數(shù)據(jù)庫的JDBC驅(qū)動(dòng),換成你自己的驅(qū)動(dòng)位置 可選 -->
    <!--    <classPathEntry location="F://jdbc//mysql-connector-java-8.0.18.jar"/>-->

    <!-- 一個(gè)數(shù)據(jù)庫一個(gè)context -->
    <context id="DB2Tables" targetRuntime="Mybatis3">
        <!-- 自動(dòng)識(shí)別數(shù)據(jù)庫關(guān)鍵字,默認(rèn)false,如果設(shè)置為true,根據(jù)SqlReservedWords中定義的關(guān)鍵字列表;一般保留默認(rèn)值,遇到數(shù)據(jù)庫關(guān)鍵字(Java關(guān)鍵字),使用columnOverride覆蓋 -->
        <property name="autoDelimitKeywords" value="true"/>
        <!-- 生成的Java文件的編碼 -->
        <property name="javaFileEncoding" value="utf-8"/>
        <!-- beginningDelimiter和endingDelimiter:指明數(shù)據(jù)庫的用于標(biāo)記數(shù)據(jù)庫對象名的符號(hào),比如ORACLE就是雙引號(hào),MYSQL默認(rèn)是`單引號(hào); -->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <!-- 格式化java代碼 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <!-- 格式化XML代碼 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

        <!-- 配置 tk.mybatis 插件 -->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.glsx.plat.mybatis.mapper.CommonBaseMapper"/>
        </plugin>

        <!--配置生成注釋信息,最多配置一個(gè) -->
        <commentGenerator>
            <!-- 阻止生成注釋包含時(shí)間戳 默認(rèn)為false -->
            <property name="suppressDate" value="true"/>
            <!-- 注釋是否添加數(shù)據(jù)庫表的備注信息 默認(rèn)為false -->
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>
        <!-- jdbc連接-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3307/test?serverTimeZone=Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false"
                        userId="root"
                        password="root">
            <!--防止生成其他庫同名表-->
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>
        <!-- 類型轉(zhuǎn)換 -->
        <javaTypeResolver>
            <!-- 是否使用bigDecimal, false可自動(dòng)轉(zhuǎn)化以下類型(Long, Integer, Short, etc.) -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 生成實(shí)體類地址 -->
        <javaModelGenerator targetPackage="cn.com.glsx.admin.modules.entity" targetProject="src/main/java">
            <!-- 是否讓schema作為包的后綴 -->
            <property name="enableSubPackages" value="true"/>
            <!-- 從數(shù)據(jù)庫返回的值去掉前后空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成mapper.xml文件存放地址 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成接口dao  type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper對象 type="MIXEDMAPPER",        生成基于注解的Java Model 和相應(yīng)的Mapper對象 type="XMLMAPPER",生成SQLMap XML文件和獨(dú)立的Mapper接口 -->
        <javaClientGenerator targetPackage="cn.com.glsx.admin.modules.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- table可以有多個(gè),每個(gè)數(shù)據(jù)庫中的表都可以寫一個(gè)table,tableName表示要匹配的數(shù)據(jù)庫表,也可以在tableName屬性中通過使用%通配符來匹配所有數(shù)據(jù)庫表,        只有匹配的表才會(huì)自動(dòng)生成文件 enableSelectByPrimaryKey相應(yīng)的配置表示是否生成相應(yīng)的接口 -->
        <table tableName="d_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
    <table tableName="d_student" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
    </context> 
</generatorConfiguration>

3.運(yùn)行插件,生成代碼

雙擊插件,運(yùn)行后,在控制臺(tái)中能看到BUILD SUCCESS,說明運(yùn)行成功。

  

若在項(xiàng)目中沒有,鼠標(biāo)右擊項(xiàng)目,則重新刷新整個(gè)項(xiàng)目或者重新加載項(xiàng)目,就可以在配置的路徑下看到生成的文件。

總結(jié)

到此這篇關(guān)于mybatis如何根據(jù)表逆向自動(dòng)化生成代碼的文章就介紹到這了,更多相關(guān)mybatis表逆向自動(dòng)化生成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中String.intern()方法功能介紹

    java中String.intern()方法功能介紹

    這篇文章主要介紹了java中String.intern()方法具有什么功能,主要包括String.intern原理,JDK6中String.intern()的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • java web實(shí)現(xiàn)網(wǎng)上手機(jī)銷售系統(tǒng)

    java web實(shí)現(xiàn)網(wǎng)上手機(jī)銷售系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java web實(shí)現(xiàn)網(wǎng)上手機(jī)銷售系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java中Redis的布隆過濾器詳解

    Java中Redis的布隆過濾器詳解

    這篇文章主要介紹了Java中Redis的布隆過濾器詳解,我們經(jīng)常會(huì)把一部分?jǐn)?shù)據(jù)放在Redis等緩存,比如產(chǎn)品詳情,這樣有查詢請求進(jìn)來,我們可以根據(jù)產(chǎn)品Id直接去緩存中取數(shù)據(jù),而不用讀取數(shù)據(jù)庫,這是提升性能最簡單,最普遍,也是最有效的做法,需要的朋友可以參考下
    2023-09-09
  • 使用SpringBoot配置https(SSL證書)

    使用SpringBoot配置https(SSL證書)

    這篇文章主要介紹了使用SpringBoot配置https(SSL證書),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 使用Spring的注解方式實(shí)現(xiàn)AOP實(shí)例

    使用Spring的注解方式實(shí)現(xiàn)AOP實(shí)例

    本篇文章主要介紹了使用Spring的注解方式實(shí)現(xiàn)AOP實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解IDEA 中使用Maven創(chuàng)建項(xiàng)目常見錯(cuò)誤和使用技巧(推薦)

    詳解IDEA 中使用Maven創(chuàng)建項(xiàng)目常見錯(cuò)誤和使用技巧(推薦)

    這篇文章主要介紹了詳解IDEA 中使用Maven創(chuàng)建項(xiàng)目常見錯(cuò)誤和使用技巧(推薦),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • JAVA中的日期時(shí)間類用法總結(jié)

    JAVA中的日期時(shí)間類用法總結(jié)

    這篇文章主要給大家介紹了關(guān)于JAVA中日期時(shí)間類用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • springcloud config配置讀取優(yōu)先級過程詳解

    springcloud config配置讀取優(yōu)先級過程詳解

    這篇文章主要介紹了springcloud config配置讀取優(yōu)先級過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • eclipse+myeclipse 環(huán)境配置方法

    eclipse+myeclipse 環(huán)境配置方法

    eclipse+myeclipse配置環(huán)境
    2009-07-07
  • 一個(gè)例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用

    一個(gè)例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用

    synchronized是Java里的一個(gè)關(guān)鍵字,起到的一個(gè)效果是"監(jiān)視器鎖",它的功能就是保證操作的原子性,同時(shí)禁止指令重排序和保證內(nèi)存的可見性,下面這篇文章主要給大家介紹了關(guān)于如何通過一個(gè)例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用的相關(guān)資料,需要的朋友可以參考下
    2022-10-10

最新評論

白山市| 吴忠市| 昭觉县| 乐东| 孙吴县| 靖州| 平罗县| 运城市| 平利县| 湾仔区| 宽甸| 鄄城县| 德惠市| 赤城县| 澄江县| 九龙城区| 江华| 临邑县| 芮城县| 环江| 韶山市| 收藏| 上林县| 泾源县| 盈江县| 九龙坡区| 铜山县| 永德县| 镇坪县| 阜南县| 永清县| 和林格尔县| 贵阳市| 长春市| 灯塔市| 九龙坡区| 曲阳县| 惠来县| 饶阳县| 万安县| 雅江县|