国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程

這篇具有很好參考價值的文章主要介紹了Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


在開發(fā)中,一般我們的開發(fā)流程是:
  1. 數(shù)據(jù)庫:設(shè)計數(shù)據(jù)表
  2. 實體類:建立與數(shù)據(jù)表對應(yīng)的pojo實體類
  3. 持久層:設(shè)計持久層,Mapper接口和Mypper.xml sql映射文件
  4. 服務(wù)層:添加Service接口和ServiceImpl接口實現(xiàn)類
  5. 邏輯控制層:設(shè)計各頁面/功能的Cotroller

但是,我們想的是,很多情況下,實體類都是一些和SQL表中重復(fù)的字段,能不能有一種方法可以自動生成對應(yīng)的實體類?如果表少,手敲沒有啥,如果表太多的話,難免會很麻煩,所以MyBatis官方提供了一個逆向工程,可以針對單表自動生成MyBatis執(zhí)行所需要的代碼(包括mapper.xml,mapper.java,pojo)。一般在開發(fā)中,常用的逆向工程方式是通過數(shù)據(jù)庫的表生成代碼。

在引入逆向工程之后,我們的開發(fā)流程會變成:

  1. 加入Mybatis逆向工程的依賴

  2. 設(shè)計數(shù)據(jù)表

  3. 配置逆向工程配置信息

  4. 運行逆向工程

  5. 得到【pojo類、dao接口、sql映射文件】

下面,我們來開始使用,對于逆向工程,幫我們自動生成的Java代碼,大大加快了我們的開發(fā)效率。但是,生成的文件太過冗余,不必要的代碼過多。尤其是sql映射文件,里面的配置內(nèi)容太多,對于dao層,提供的方法比較有限,需要自行擴展。后期,一般使用MyBatisPlus完成開發(fā)功能。

一、使用步驟

1、建立新項目

開始,我們建立一個空項目,模擬一下初始的開發(fā)流程
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
對于配置文件可以在官方網(wǎng)站中找到:http://mybatis.org/generator/configreference/xmlconfig.html,很多時候要學(xué)會看官網(wǎng) 。

2、引入pom依賴

<!--mysql-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <!-- mybatis依賴 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    <!-- mybatis逆向工程依賴 -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.7</version>
    </dependency>

3、創(chuàng)建逆向工程的配置文件 generatorConfig.xml

Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
注意的是:配置文件中的各個標(biāo)簽順序是有要求的,和mybatis-config.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>
   <context id="DB2Tables" targetRuntime="MyBatis3">
     <!-- 去除生成的注解 -->
     <commentGenerator>
        <property name="suppressAllComments" value="true"/>
     </commentGenerator>
     <!-- 數(shù)據(jù)庫連接配置 -->
     <!-- 注意xml中不支持&,用&amp;代替 -->
     <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" 
     connectionURL="jdbc:mysql://rm-m5e130nm7h37n6v982o.mysql.rds.aliyuncs.com:3306/demo?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=GMT%2B8"
     userId="xxxxx" password="xxxxxx"></jdbcConnection>
     
     <!-- 處理NUMERIC和DECIMAL類型的策略 -->
     <javaTypeResolver>
         <property name="forceBigDecimals" value="false" />
     </javaTypeResolver>
     
     <!-- 配置pojo生成的位置 -->
     <javaModelGenerator targetPackage="com.ycz.pojo"  targetProject="src/main/java">
        <property name="enableSubPackages" value="true" />
        <property name="trimStrings" value="true" />
     </javaModelGenerator>
     
     <!-- 配置sql映射文件的生成位置 -->
     <sqlMapGenerator targetPackage="com.ycz.mapper" targetProject="src/main/resources">
        <property name="enableSubPackages" value="true" />
        <property name="trimStrings" value="true" />        
     </sqlMapGenerator>
     
     <!-- 配置dao接口的生成位置 -->
     <javaClientGenerator type="XMLMAPPER" targetPackage="com.ycz.dao" 
     targetProject="src/main/java">
        <property name="enableSubPackages" value="true" />
        <property name="trimStrings" value="true" />     
     </javaClientGenerator>
     
     <!-- 指定逆向依據(jù)的數(shù)據(jù)表 -->
     <table tableName="person" domainObjectName="Person"></table>
   </context>
 </generatorConfiguration>

4、運行逆行工程,生成代碼文件

public class GeneratorTest {
    public static void main(String[] args) throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("src/main/resources/config/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
        System.out.println("生成成功!");
    }
}

二、案例展示

我們按照上述的開發(fā)流程步驟來進行:

1、建立數(shù)據(jù)表

根據(jù)自己的業(yè)務(wù),首先第一步進行的就是先創(chuàng)建對應(yīng)符合業(yè)務(wù)的數(shù)據(jù)表。這里我使用三張表:
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
三張表的字段信息如下:
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
這里不需要直接用我的三張表,可以自己建立自己的表來進行測試,這邊只是為了后文博文的完整性。

2、改寫對應(yīng)的配置文件內(nèi)容

1、數(shù)據(jù)庫連接配置,指定自己的數(shù)據(jù)庫

需要對generatorConfig.xml文件中的內(nèi)容修改為符合自己項目的配置。

  <!-- 注意xml中不支持&,用&amp;代替 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis_demo?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=GMT%2B8"
                        userId="root" password="admin123">
            <!--在逆向生成時,除了會生成 User 類,還會生成一個繼承 User 類的UserWithBLOBs 類。
                加入此注解避免生成類的UserWithBLOBs-->
            <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>

jdbcConnection設(shè)置連接信息,配置用戶名和密碼,驅(qū)動和數(shù)據(jù)庫的url等等信息。

2、配置pojo生成的位置

  <!-- 配置pojo生成的位置 -->
        <javaModelGenerator targetPackage="com.fckey.pojo"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

主要配置的是targetPackage項目,指定pojo生成的位置

3、配置sql映射文件的生成位置

  <!-- 配置sql映射文件的生成位置 -->
        <sqlMapGenerator targetPackage="com.fckey.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </sqlMapGenerator>

4、配置mapper接口的生成位置

 <!-- 配置dao接口的生成位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.fckey.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaClientGenerator>

5、對需要生成對應(yīng)數(shù)據(jù)表進行指定

 <!-- 指定逆向依據(jù)的數(shù)據(jù)表 -->
        <table tableName="t_dept" domainObjectName="Dept"></table>
        <table tableName="t_emp" domainObjectName="Emp"></table>
        <table tableName="t_user" domainObjectName="User"></table>

3、運行生成代碼工具類

在編寫好了對應(yīng)的配置,還需要一個能夠運行配置的方法。如下所示:

public class GeneratorTest {
    public static void main(String[] args) throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("src/main/resources/config/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
        System.out.println("生成成功!");
    }
}

4、運行結(jié)果

直接運行GeneratorTest,查看最終的結(jié)果
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
生成的效果還是不錯的,對于xml配置文件,里面寫的內(nèi)容也是非常的專業(yè)。
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程

三、對生成的逆向工程代碼進行測試

對于生成的逆向工程代碼,我們注意到pojo包名下還生成了xxxExample方法,example用于添加查詢條件,相當(dāng)where后面的部分。
對于Example中方法的說明。
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
在進行測試之前,需要注意的是,我們還需要導(dǎo)入全局配置文件mybatis-config.xml來完成測試分析。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="cacheEnabled" value="true"/>
    </settings>
    <typeAliases>
        <!--將當(dāng)前包下的所有類都配置別名-->
        <package name="com.fckey.mybatis.entity"/>
    </typeAliases>
    <!--設(shè)置連接數(shù)據(jù)庫的環(huán)境-->
    <environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url"
                      value="jdbc:mysql://localhost:3306/mybatis_demo"/>
            <!--注意:如果在建sql表單的時候選了字符集(如utf8),
            這里的value要改成:value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"-->
            <property name="username" value="root"/>
            <property name="password" value="admin123"/>
        </dataSource>
    </environment>
</environments>
    <!--引入映射文件-->
    <mappers>
        <package name="com.fckey.mapper"/>
    </mappers>
</configuration>

書寫測試類的時候,發(fā)現(xiàn)多了很多條件的查詢。
Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程
測試類編寫:

   private static SqlSession getSqlSession() throws IOException {
    /*
       如果是想自動的進行提交,而不需要手動的提交事務(wù),可以在sqlSession()中傳入true,即可開啟自動提交功能
     */
        // 加載核心配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        // 獲取sqlsessionfactorybuilder對象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        // 獲取sqlsessionFactory
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        // 獲取sqlsession
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        return sqlSession;
    }

    @org.junit.Test
    public void test() throws IOException {
        SqlSession sqlSession = getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        List<Emp> emps = mapper.selectByExample(null);
        System.out.println(emps);
    }

最后得到所有的對象信息:

Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程文章來源地址http://www.zghlxwxcb.cn/news/detail-454576.html


到了這里,關(guān)于Mybatis連接MySQL數(shù)據(jù)庫通過逆向工程簡化開發(fā)流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java通過JDBC連接mysql8.0數(shù)據(jù)庫,并對數(shù)據(jù)庫中的表進行增刪改查操作

    java通過JDBC連接mysql8.0數(shù)據(jù)庫,并對數(shù)據(jù)庫中的表進行增刪改查操作

    目錄 一、JDBC簡介 二、添加依賴 三、JDBC操作數(shù)據(jù)庫的步驟 四、JDBC操作數(shù)據(jù)庫——增刪改查 (一)新增數(shù)據(jù) (二)刪除數(shù)據(jù) (三)修改數(shù)據(jù) (四)查詢數(shù)據(jù) (五)多表連接查詢 ????????Java數(shù)據(jù)庫連接,(Java Database Connectivity,簡稱JDBC)是java語言中用來規(guī)范客戶端程序如何來訪問數(shù)

    2024年02月03日
    瀏覽(710)
  • 在IDEA中配置MySQL數(shù)據(jù)庫連接以及在使用mybatis時設(shè)置sql語句的代碼提示功能

    在IDEA中配置MySQL數(shù)據(jù)庫連接以及在使用mybatis時設(shè)置sql語句的代碼提示功能

    在IDEA中配置MySQL數(shù)據(jù)庫連接以及在使用mybatis 時設(shè)置 sql語句的代碼提示功能 一:在IDEA中配置MySQL數(shù)據(jù)庫連接 第一步:在IDEA右側(cè)區(qū)域有database選項,點擊進去 第二步:database ?- data soucre - mysql? ?第三步:配置連接信息,連接數(shù)據(jù)庫 ? 第四步:顯示的數(shù)據(jù)庫以及表的信息 ?第

    2024年02月14日
    瀏覽(37)
  • Android studio 通過mysql連接數(shù)據(jù)庫完成注冊登錄,登陸后通過tcp協(xié)議與電腦的網(wǎng)絡(luò)調(diào)試助手互發(fā)信息

    Android studio 通過mysql連接數(shù)據(jù)庫完成注冊登錄,登陸后通過tcp協(xié)議與電腦的網(wǎng)絡(luò)調(diào)試助手互發(fā)信息

    先不多直接看軟件截圖 這個是首頁等陸界面 xml代碼如下 MainActivity文件 ? ?注冊界面的xlm文件? 這個界面比較簡單就不介紹了 ? MainActivity文件 這是一個注冊失敗的界面,如果數(shù)據(jù)庫內(nèi)有相同的賬號密碼則顯示注冊失敗 話不多說直接上代碼 MainActivity里面的代碼 這里是user類用

    2024年02月02日
    瀏覽(36)
  • 物聯(lián)網(wǎng)開發(fā)終端管理篇-java從MQTT獲取設(shè)備數(shù)據(jù),并通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫(Windows系統(tǒng))

    物聯(lián)網(wǎng)開發(fā)終端管理篇-java從MQTT獲取設(shè)備數(shù)據(jù),并通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫(Windows系統(tǒng))

    下面來給大家做個簡單的數(shù)據(jù)對接,也就是通過寫JAVA代碼實現(xiàn)MQTT協(xié)議 首頁我們得搭建一個簡單的IDEA項目,這個我就不做演示了 搭建完項目,我們需要準備一些jar包,jar包名如下: org.eclipse.paho.client.mqttv3-1.1.0.jar mysql-connector-java-5.1.34.jar jackson-databind-2.10.0.jar jackson-core-2.10.0

    2024年02月11日
    瀏覽(29)
  • Failed to load driver class com.mysql.cj.jdbc.Driver異常-IntellIJ Idea-后端項目連接數(shù)據(jù)庫_添加MyBatis依賴配置問題

    Failed to load driver class com.mysql.cj.jdbc.Driver異常-IntellIJ Idea-后端項目連接數(shù)據(jù)庫_添加MyBatis依賴配置問題

    前言 :后端項目連接數(shù)據(jù)庫配置時,添加了如下application.properties的數(shù)據(jù)庫連接配置 項目點擊運行,就出現(xiàn)以下系列問題 這種情況通常是由于以下原因之—引起的: 1.沒有在項目中引入mysql-connectorjar包,或者引入的包版本與JDBC驅(qū)動不匹配。解決方法:在項目pom.xml中添加相關(guān)依

    2024年02月05日
    瀏覽(95)
  • 根據(jù)源碼,模擬實現(xiàn) RabbitMQ - 通過 SQLite + MyBatis 設(shè)計數(shù)據(jù)庫(2)

    根據(jù)源碼,模擬實現(xiàn) RabbitMQ - 通過 SQLite + MyBatis 設(shè)計數(shù)據(jù)庫(2)

    目錄 一、數(shù)據(jù)庫設(shè)計 1.1、數(shù)據(jù)庫選擇 1.2、環(huán)境配置 1.3、建庫建表接口實現(xiàn) 1.4、封裝數(shù)據(jù)庫操作 1.5、針對 DataBaseManager 進行單元測試 1.6、心得 MySQL 是我們最熟悉的數(shù)據(jù)庫,但是這里我們選擇使用 SQLite,原因如下: SQLite 比 MySQL 更輕量:一個完整的 SQLite 數(shù)據(jù)庫,只有一個單

    2024年02月13日
    瀏覽(21)
  • 通過JDBC連接數(shù)據(jù)庫并用Java把數(shù)據(jù)寫入數(shù)據(jù)庫

    通過JDBC連接數(shù)據(jù)庫并用Java把數(shù)據(jù)寫入數(shù)據(jù)庫

    目錄 1.新建項目 2.在src包下新建lib包,用來存放jar包(下載對應(yīng)jar包復(fù)制到lib包里) 3.右鍵導(dǎo)入的jar包,找到并單擊\\\"添加到庫\\\"(add....) 4.在src包下新建bean包,新建class類 5.class類中寫數(shù)據(jù)庫表中對應(yīng)的列名的set get方法、空參、有參(String方法)注意:類名為私有類(private),新建類時數(shù)

    2024年02月02日
    瀏覽(98)
  • 通過Java連接Sql Server數(shù)據(jù)庫

    通過Java連接Sql Server數(shù)據(jù)庫

    JDBC是Java DateBase Connectivity的簡寫,翻譯過來就是java連接數(shù)據(jù)庫,或者更通俗地說就是java語言操作數(shù)據(jù)庫。JDBC的本質(zhì)其實是官方定義的一套操作所有關(guān)系型數(shù)據(jù)庫的規(guī)則,也就是接口。 微軟官方j(luò)dbc下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=11774 下載之后解壓到相

    2024年01月17日
    瀏覽(96)
  • Qt通過ODBC連接openGauss數(shù)據(jù)庫

    Qt通過ODBC連接openGauss數(shù)據(jù)庫

    本文就介紹了Qt通過ODBC連接opengauss數(shù)據(jù)庫的基礎(chǔ)內(nèi)容。 在.pro文件中添加一行引入 添加如下測試代碼 說明成功連接openGauss數(shù)據(jù)庫 什么是ODBC ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是由Microsoft公司基于X/OPEN CLI提出的用于訪問數(shù)據(jù)庫的應(yīng)用程序編程接口。應(yīng)用程序通過O

    2024年02月05日
    瀏覽(22)
  • 如何通過navicat連接SQL Server數(shù)據(jù)庫

    如何通過navicat連接SQL Server數(shù)據(jù)庫

    ? ? ? ?本文介紹如何通過Navicat 連接SQL Server數(shù)據(jù)庫。如果想了解如何連接Oracle數(shù)據(jù)庫,可以參考下邊這篇文章。 如何通過Navicat連接Oracle數(shù)據(jù)庫 https://sgknight.blog.csdn.net/article/details/132064235 1、新建SQL Server連接配置 ? ? ? ? 打開Navicat軟件,點擊連接,選擇SQL server,進入配置頁

    2024年02月04日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包