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

mybatis連接mysql的實(shí)現(xiàn)過程

 更新時(shí)間:2024年10月19日 10:04:07   作者:xvwen  
通過配置Maven的pom文件,可以簡(jiǎn)化MyBatis連接數(shù)據(jù)庫(kù)的過程,免去手動(dòng)下載和導(dǎo)入各種依賴包的麻煩,本文介紹了如何利用Maven導(dǎo)入MyBatis及其他相關(guān)依賴,如Junit、MySQL連接驅(qū)動(dòng)、Druid連接池和Dbutil等,以簡(jiǎn)化數(shù)據(jù)庫(kù)操作和測(cè)試

mybatis連接數(shù)據(jù)庫(kù)

配置Maven的pom文件,導(dǎo)入依賴的工具包

配置pom文件可以免去下載和導(dǎo)入各種依賴包(jar)的操作,具體可以去看之前的Maven的相關(guān)文章。

<dependencies>
    <!--junit單元測(cè)試坐標(biāo)-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--mysql連接數(shù)據(jù)庫(kù)的依賴坐標(biāo)坐標(biāo)-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.11</version>
    </dependency>

    <!--導(dǎo)入mybatis坐標(biāo)-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>

    <!--導(dǎo)入druid連接池-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.24</version>
    </dependency>

    <!--導(dǎo)入dbutils坐標(biāo)-->
    <dependency>
      <groupId>commons-dbutils</groupId>
      <artifactId>commons-dbutils</artifactId>
      <version>1.6</version>
    </dependency>


  </dependencies>
  • junit單元測(cè)試,可以方便我們測(cè)試每個(gè)sql語句的函數(shù)。
  • mysql-connect-xxx時(shí)jdbc的連接驅(qū)動(dòng)的jar包,是連接數(shù)據(jù)庫(kù)的必要條件
  • mybatis坐標(biāo)是數(shù)據(jù)庫(kù)操作框架,簡(jiǎn)化jdbc的操作,當(dāng)然如果你習(xí)慣jdbc操作的化可以導(dǎo)入jdbc的坐標(biāo)
  • druid連接池,連接池是一個(gè)容器,優(yōu)化線程的工具,不必為每個(gè)操作創(chuàng)建單個(gè)的數(shù)據(jù)庫(kù)連接。
  • dbutil也是jdbc的簡(jiǎn)化工具包,使查詢和更新變得更簡(jiǎn)單,并能處理查詢的結(jié)果集。

定義mybatis框架的配置文件mybatis-config.xml

該文件在maven項(xiàng)目目錄結(jié)構(gòu)的resoueces目錄下,主要實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接和配置sql語句簡(jiǎn)化數(shù)據(jù)庫(kù)操作的。

IDEA實(shí)現(xiàn)Maven項(xiàng)目創(chuàng)建并連接Tomcat

<?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>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
      <!--連接配置->
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
 	<!--mappper映射路徑-->
    <mapper resource="UserMapper.xml"/>
  </mappers>
</configuration>

需要修改的有兩個(gè)部分: 

連接配置(配置mysql連接的信息和jdbc差不多)${driver}修改為jdbc配置使的Driver對(duì)象的內(nèi)容。${url}也是jdbc連接數(shù)據(jù)時(shí)的配置,下面兩個(gè)username和password是數(shù)據(jù)庫(kù)的登錄名(root)和密碼。其實(shí)這些和jdbc一樣。 

mapper映射路徑(將sql語句封裝為一個(gè)帶參方法的配置文件的路徑)標(biāo)簽中的resource的內(nèi)容要修改,改為對(duì)象映射文件(如UserMapper)的路徑。有幾個(gè)文件就要重寫幾個(gè)路徑。

  • 注意帶$的要修改,和jdbc的一樣mysql的8.0以上的driver=“com.mysql.cj.jdbc.Driver”;url=“jdbc:mysql://localhost:3306/db1?useSSL=false&serverTimezone=UTC”。db1是數(shù)據(jù)庫(kù)的名稱,相當(dāng)于”use db1”的sql語句后面要有問號(hào)分割,數(shù)據(jù)庫(kù)密碼要正確。
  • mappers下的mapper的resource路徑要修改成對(duì)象映射的xml路徑。即下面的UserMapper.xml路徑

配置對(duì)象映射文件UserMapper.xml

該文件的作用時(shí)將數(shù)據(jù)的表映射為javabean的對(duì)象。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
  <select id="selectAll" resultType="model.User">
    select * from Blog where id = #{id}
  </select>
 
</mapper>

該文件就是將sql語句封裝為一個(gè)帶參方法,操作數(shù)據(jù)庫(kù)是直接調(diào)用。mapper標(biāo)簽就是sql語句id就是被封裝的方法。

需要修改的有三個(gè)地方:namespace,id,resultType,sql語句。

有string,list,javabean,map等類型。我們直接返回javabean即可(返回javabean時(shí)要填寫javabean的路徑)即model.User。 

sql語句中的#{}是占位符,和jdbc的?一樣傳遞參數(shù)的。Blog改為對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名,這個(gè)sql語句要能在mysql命令框運(yùn)行的(帶參數(shù)的話)

  • 看一下我的javabean路徑:

namespace可以隨便命名,select的id要唯一,resulttype為對(duì)應(yīng)javabean的User類即model.User。該文件的名稱為UserMapper.xml。

編寫數(shù)據(jù)庫(kù)連接代碼

package mybatis;
import model.User;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MybatisTest {

    @Test
    public void method() throws IOException {     //單元測(cè)試不能要static
        //mybatis框架都在xml配置文件中加載配置文件
        //從 XML 文件中構(gòu)建 SqlSessionFactory 的實(shí)例
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;

        inputStream = Resources.getResourceAsStream(resource);

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //從 SqlSessionFactory 中獲取 SqlSession
        SqlSession session = sqlSessionFactory.openSession();


        //執(zhí)行sql
        List<User> users=session.selectList("test.selectAll",2);

        System.out.println(users);

        //釋放資源
        session.close();

    }
}

測(cè)試代碼中只有執(zhí)行sql的步驟需要修改,在前面的配置文件中test時(shí)namespace隨便名命名的,selectAll是id(封裝的方法)selectList是sqlsession的處理查詢結(jié)果集的方法,將查詢對(duì)象存儲(chǔ)到list集合中。并用List的泛型類接收。

我先演示一個(gè)不帶參數(shù)的查詢:將sql語句改為:select * from user,刪除執(zhí)行sql中的1(查詢所有)

  • 如圖所示運(yùn)行結(jié)果:

  • 對(duì)應(yīng)數(shù)據(jù)中的user表:

原樣運(yùn)行的話是有參數(shù)的,在方法后面直接添加一個(gè)參數(shù)就可以了,如圖上的提示paramter為參數(shù)。

  • 填入一個(gè)數(shù)字2.

  • 如圖運(yùn)行結(jié)果:

由上上個(gè)圖可以看出,第三個(gè)參數(shù)變?yōu)榱藃owBounds,有興趣的可以了解一下,但是我們知道的是,肯定不是傳遞第二個(gè)參數(shù)的對(duì)象。那么封裝sql語句是有多個(gè)參數(shù)該怎么辦呢?

就需要使用mybatis的mapper代理開發(fā)了。用于解決傳遞多個(gè)參數(shù)的問題。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中BigDecimal和0比較的示例代碼

    java中BigDecimal和0比較的示例代碼

    這篇文章主要介紹了java中BigDecimal和0比較的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java實(shí)現(xiàn)猜數(shù)字小游戲(Swing版)

    java實(shí)現(xiàn)猜數(shù)字小游戲(Swing版)

    這篇文章主要介紹了java實(shí)現(xiàn)猜數(shù)字小游戲,Swing編程版的猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Java微服務(wù)之Feign遠(yuǎn)程調(diào)用方式

    Java微服務(wù)之Feign遠(yuǎn)程調(diào)用方式

    這篇文章主要介紹了Java微服務(wù)之Feign遠(yuǎn)程調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • idea中如何使用(Undo Commit...)

    idea中如何使用(Undo Commit...)

    這篇文章主要介紹了idea中如何使用(Undo Commit...)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • J2SE基礎(chǔ)之下載eclipse并創(chuàng)建項(xiàng)目

    J2SE基礎(chǔ)之下載eclipse并創(chuàng)建項(xiàng)目

    本文給大家介紹的是最流行的java 集成開發(fā)環(huán)境IDE eclipse的使用方法,非常的簡(jiǎn)單,有需要的小伙伴可以參考下
    2016-05-05
  • 微信支付java版本之查詢訂單

    微信支付java版本之查詢訂單

    這篇文章主要為大家詳細(xì)介紹了微信支付java版本之查詢訂單,為大家分享了微信支付訂單的查詢接口,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Java static關(guān)鍵字詳細(xì)介紹與用法總結(jié)

    Java static關(guān)鍵字詳細(xì)介紹與用法總結(jié)

    這篇文章主要介紹了Java中static關(guān)鍵字的作用和用法詳細(xì)介紹,主要講了靜態(tài)方法、靜態(tài)變量、靜態(tài)類、static和final一塊用等內(nèi)容。需要的朋友可以參考下
    2017-04-04
  • Spring實(shí)現(xiàn)內(nèi)置監(jiān)聽器

    Spring實(shí)現(xiàn)內(nèi)置監(jiān)聽器

    這篇文章主要介紹了Spring 實(shí)現(xiàn)自定義監(jiān)聽器案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧,希望能給你帶來幫助
    2021-07-07
  • SpringBoot如何防止XSS注入攻擊詳解

    SpringBoot如何防止XSS注入攻擊詳解

    這篇文章主要給大家介紹了關(guān)于SpringBoot如何防止XSS注入攻擊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • SpringBoot實(shí)現(xiàn)實(shí)時(shí)彈幕的示例代碼

    SpringBoot實(shí)現(xiàn)實(shí)時(shí)彈幕的示例代碼

    實(shí)時(shí)彈幕系統(tǒng)已成為現(xiàn)代視頻網(wǎng)站和直播平臺(tái)的標(biāo)準(zhǔn)功能,它讓觀眾可以在觀看視頻時(shí)發(fā)送即時(shí)評(píng)論,本文將介紹如何使用SpringBoot構(gòu)建一個(gè)實(shí)時(shí)彈幕系統(tǒng),需要的可以了解下
    2025-06-06

最新評(píng)論

阳春市| 临汾市| 香河县| 姜堰市| 灵石县| 尼玛县| 大渡口区| 东莞市| 鹤岗市| 九龙坡区| 太和县| 榆林市| 广水市| 阜康市| 锦州市| 泸州市| 察雅县| 阿勒泰市| 汉寿县| 宜君县| 湟中县| 金乡县| 论坛| 启东市| 屏边| 新巴尔虎左旗| 阜新| 德昌县| 湄潭县| 南木林县| 阿拉尔市| 临夏市| 铁力市| 博野县| 铜川市| 巴东县| 洪泽县| 微博| 商水县| 辛集市| 通山县|