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

八、Spring 整合 MyBatis

這篇具有很好參考價值的文章主要介紹了八、Spring 整合 MyBatis。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


一、Spring 整合 MyBatis 的關鍵點



1、 將 Mybatis 的 DataSource (數(shù)據(jù)來源)的創(chuàng)建和管理交給 Spring Ioc 容器來做,并使用第三方數(shù)據(jù)庫連接池來(Druid,C3P0等)取代 MyBatis 內(nèi)置的數(shù)據(jù)庫連接池

2、將 Mybatis 的 SqlSessionFactroy 交給 Spring Ioc 創(chuàng)建和管理,使用 spring-mybatis 整合jar包中提供的 SqlSessionFactoryBean 類代替項目中的 MyBatisUtil 工具類

3、將MyBatis的接口代理方式生成的實現(xiàn)類,交給Spring IoC容器創(chuàng)建并管理




二、Spring 整合 MyBatis 的步驟


2.1 創(chuàng)建 Maven 項目,并導入相關依賴


  • 創(chuàng)建 maven 項目,并在pom.xml 中整合如下依賴

    注意:如果需要配置 Maven 靜態(tài)資源過濾問題時,需要保證靜態(tài)資源路徑正確,否則掃描不到

    • 單元測試:junit

    • mybatis 相關依賴

    • 數(shù)據(jù)庫相關依賴 (mysql、Oracle等)

    • 第三方數(shù)據(jù)庫連接池

    • Spring 相關依賴

    • aop 織入器

    • mybatis-spring 整合包【重點】

    • lombok 工具依賴

    • slf4j日志依賴

      • 具體依賴如下所示:

            <dependencies>
                <!-- Junit測試 -->
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.12</version>
                    <scope>compile</scope>
                </dependency>
        
                <!-- MyBatis核心Jar包 -->
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>3.4.6</version>
                </dependency>
        
                <!-- MySql驅(qū)動 -->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.47</version>
                </dependency>
        
                <!-- Lombok工具 -->
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.18.12</version>
                    <scope>provided</scope>
                </dependency>
        
                <!-- Spring核心 -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>5.3.3</version>
                </dependency>
        
                <!-- Spring-test測試 -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-test</artifactId>
                    <version>5.3.3</version>
                </dependency>
        
                <!-- slf4j日志包 -->
                <dependency>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                    <version>1.7.25</version>
                </dependency>
        
                <!-- druid阿里的數(shù)據(jù)庫連接池 -->
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid</artifactId>
                    <version>1.1.10</version>
                </dependency>
        
                <!-- Spring整合ORM -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-orm</artifactId>
                    <version>5.3.3</version>
                </dependency>
        
                <!-- Spring整合MyBatis -->
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                    <version>1.3.2</version>
                </dependency>
            </dependencies>
        

2.2 配置 Mybatis 部分


  • 創(chuàng)建實體類

    @Data
    public class User {
    
        private String id;
        private String name;
        private String pwd;
    
    }
    
  • 創(chuàng)建 Mapper 接口

    public interface UserMapper {
    
        List<Users> getUsers();
        
        int addUsers(Users users);
    
        int updateUser(Users users);
    
        int deleteUser(Users users);
    }
    
  • 創(chuàng)建 Mapper 接口對應的 xml

    <?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="com.sys.mapper.UserMapper" >
    
        <!-- 開啟MyBatis自帶的二級緩存 -->
        <!--<cache size="1024" eviction="LRU" flushInterval="60000" readOnly="true"/>-->
    
        <select id="getUsers" resultType="com.sys.dto.Users">
            select id,name,pwd from user
        </select>
    
        <insert id="addUsers" parameterType="com.sys.dto.Users">
            insert into user (id,name,pwd) values (#{id},#{name},#{pwd})
        </insert>
    
        <update id="updateUser" parameterType="com.sys.dto.Users">
            update user set name = #{name} where id = #{id}
        </update>
    
        <delete id="deleteUser" parameterType="com.sys.dto.Users">
            delete from user where id = #{id}
        </delete>
    
    </mapper>
    
  • 配置數(shù)據(jù)源(之前學習 MyBatis 時候都是配置到xml中的,這次維護到 jdbc-config.properties 中,因為不使用 MyBatis 內(nèi)置連接池,使用第三方數(shù)據(jù)連接池)

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8
    jdbc.username=root
    jdbc.password=root
    
  • 配置 mybatis-config.xml (配置 MyBatis 緩存)

    <?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>
        <!-- 開啟延遲加載 該項默認為false,即所有關聯(lián)屬性都會在初始化時加載
             true表示延遲按需加載 -->
        <settings>
            <setting name="lazyLoadingEnabled" value="true"/>
            <!-- 開啟二級緩存,這里注釋了,不配置默認為一級緩存 -->
            <!-- <setting name="cacheEnabled" value="true"/> -->
        </settings>
        
    </configuration>
    
  • 配置 log

    log4j.rootLogger=DEBUG, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
    
    log4j.logger.java.sql.ResultSet=INFO
    log4j.logger.org.apache=INFO
    log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    

2.3 配置 Spring 部分


  • 配置 Spring 容器

    • 1、將數(shù)據(jù)源以 Bean 的形式存儲進 Ioc容器
      2、配置 SessionFactory 的 Bean,并將數(shù)據(jù)源的 Bean 以及 MyBatis 配置文件的路徑和 mapper.xml 的映射關系注入到 SessionFactory 的 Bean 中 。(注:SessionFactory :點進源碼可以發(fā)現(xiàn),這個類是 mybatis 的實體工具類,所有給屬性命名時必須和 SessionFactory 中的屬性保持一致)
      3、配置 mapper 接口的自動掃描

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:context="http://www.springframework.org/schema/context"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context.xsd">
      
          <!-- 加載數(shù)據(jù)庫連接信息的屬性文件 -->
          <context:property-placeholder location="classpath:jdbc-config.properties"/>
      
          <!-- 配置Druid數(shù)據(jù)源的Bean -->
          <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
              <property name="driverClassName" value="${jdbc.driver}"/>
              <property name="url" value="${jdbc.url}"/>
              <property name="username" value="${jdbc.username}"/>
              <property name="password" value="${jdbc.password}"/>
          </bean>
      
          <!-- 配置SessionFactory的Bean -->
          <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <!-- 注入數(shù)據(jù)源 -->
              <property name="dataSource" ref="dataSource"/>
              <!-- 指定MyBatis配置文件的位置 -->
              <property name="configLocation" value="classpath:mybatis-config.xml"/>
              <!-- 配置 xml 的映射 -->
      	    <property name="mapperLocations" value="classpath:mapper/*.xml"/>
          </bean>
      
          <!-- 配置mapper接口的掃描器,將Mapper接口的實現(xiàn)類自動注入到IoC容器中
           實現(xiàn)類Bean的名稱默認為接口類名的首字母小寫 -->
          <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
              <!-- basePackage屬性指定自動掃描mapper接口所在的包 -->
              <property name="basePackage" value="com.sys.mapper"/>
          </bean>
      </beans>
      

2.3 配置測試類

  • @RunWith注解:

    @RunWith 就是一個運行器
    @RunWith(JUnit4.class) 就是指用JUnit4來運行
    @RunWith(SpringJUnit4ClassRunner.class),讓測試運行于Spring測試環(huán)境
    @RunWith(Suite.class) ,就是一套測試集合,
    @ContextConfiguration Spring整合JUnit4測試時,使用注解引入多個配置文件

  • @ContextConfiguration注解:

    @ContextConfiguration這個注解通常與@RunWith(SpringJUnit4ClassRunner.class)聯(lián)合使用用來測試,這里的用法是通過它來找到 Spring 的配置文件,通過配置文件找到數(shù)據(jù)源以及 mybatis 配置文件和 映射 mapper 接口等

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = "classpath:applicationContext.xml")
    public class Test_SpringMyBatis {
    
        @Autowired
        private UserMapper userMapper;
    
        @Test
        public void testFindUserList(){
            Users users = new Users();
            /*users.setId("4");
            users.setName("姚青");
            users.setPwd("123456");
            int i = userMapper.addUsers(users);*/
            /*users.setId("5");
            users.setName("張三");
            int i2 = userMapper.updateUser(users);*/
            /*users.setId("6");
            int i3 = userMapper.deleteUser(users);*/
            List<Users> userList = userMapper.getUsers();
            System.out.println(userList);
        }
    
    }
    
  • 測試結果,增刪改查均通過

    八、Spring 整合 MyBatis,spring,mybatis,java文章來源地址http://www.zghlxwxcb.cn/news/detail-631561.html


到了這里,關于八、Spring 整合 MyBatis的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • Spring Boot整合MyBatis

    Spring Boot整合MyBatis

    在開發(fā)中,通常會涉及到對數(shù)據(jù)庫的數(shù)據(jù)進行操作,Spring Boot在簡化項目開發(fā)以及實現(xiàn)自動化配置的基礎上,對關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫的訪問操作都提供了非常好的整合支持。 Spring Boot默認采用整合SpringData的方式統(tǒng)一處理數(shù)據(jù)訪問層,通過添加大量自動配置,引入各

    2024年02月06日
    瀏覽(19)
  • Spring Boot 整合 Mybatis

    Spring Boot 整合 Mybatis

    導入依賴的時候,需要根據(jù)自己所使用的Spring Boot和MySQL的版本而定。 我這里使用的是MySQL數(shù)據(jù)庫。 首先創(chuàng)建一個mybatis_learn的數(shù)據(jù)庫。然后創(chuàng)建一個student的表。 對應的,要實現(xiàn)一個Java的實體類,來對應數(shù)據(jù)庫的表。 創(chuàng)建如圖結構的各個包和文件。 這個接口是對應Mybatis的

    2024年02月03日
    瀏覽(32)
  • Spring整合MyBatis(詳細步驟)

    Spring整合MyBatis(詳細步驟)

    Spring與Mybatis的整合,大體需要做兩件事, 第一件事是:Spring要管理MyBatis中的SqlSessionFactory 第二件事是:Spring要管理Mapper接口的掃描 具體的步驟為: 步驟1:項目中導入整合需要的jar包 步驟2:創(chuàng)建Spring的主配置類 步驟3:創(chuàng)建數(shù)據(jù)源的配置類 在配置類中完成數(shù)據(jù)源的創(chuàng)建 步驟4:主配

    2024年02月13日
    瀏覽(16)
  • Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置文件記錄

    Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置xml文件記錄 spring-mybatis.xml

    2024年01月22日
    瀏覽(50)
  • Spring 整合 Mybatis -- Spring入門保姆級教程(四)

    Spring 整合 Mybatis -- Spring入門保姆級教程(四)

    為了鞏固所學的知識,作者嘗試著開始發(fā)布一些學習筆記類的博客,方便日后回顧。當然,如果能幫到一些萌新進行新技術的學習那也是極好的。作者菜菜一枚,文章中如果有記錄錯誤,歡迎讀者朋友們批評指正。 (博客的參考源碼可以在我主頁的資源里找到,如果在學習的

    2024年02月05日
    瀏覽(24)
  • 【Spring Boot整合MyBatis教程】

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領域(rapid application development)成

    2024年02月15日
    瀏覽(21)
  • 【推薦】Spring與Mybatis集成整合

    【推薦】Spring與Mybatis集成整合

    目錄 1.概述 2.集成 2.1代碼演示: 3.整合? 3.1概述 3.2 進行整合分頁 接著上兩篇,我已經(jīng)寫了Mybatis動態(tài)之靈活使用,mybatis的分頁和特殊字符的使用方式接下來把它們集成起來,是如何的呢??????。 集成是指將不同的組件、系統(tǒng)或框架整合在一起,使它們能夠協(xié)同工作,共同

    2024年02月11日
    瀏覽(20)
  • Spring 整合 Mybatis -- Spring快速入門保姆級教程(四)

    Spring 整合 Mybatis -- Spring快速入門保姆級教程(四)

    為了鞏固所學的知識,作者嘗試著開始發(fā)布一些學習筆記類的博客,方便日后回顧。當然,如果能幫到一些萌新進行新技術的學習那也是極好的。作者菜菜一枚,文章中如果有記錄錯誤,歡迎讀者朋友們批評指正。 (博客的參考源碼可以在我主頁的資源里找到,如果在學習的

    2024年02月07日
    瀏覽(45)
  • 【Spring教程12】Spring框架實戰(zhàn):Spring整合Mybatis全面深入詳解

    【Spring教程12】Spring框架實戰(zhàn):Spring整合Mybatis全面深入詳解

    歡迎大家回到《 Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實現(xiàn),如果您對Maven還很陌生,請移步本人的博文《 如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《 IOC/DI注解開發(fā)管理第三方bean》 學習到這里,已經(jīng)對Spring有一個簡單的認

    2024年02月04日
    瀏覽(26)
  • SSM(spring+springmvc+mybatis)整合

    SSM(spring+springmvc+mybatis)整合

    @Component:實現(xiàn)bean的注入( 不過獲取bean需要用bean的類型來獲?。碿lass文件) ) @controller、@Service、@Repository的作用等同于@Component注解的作用,相當于其別名,只是為了更好的區(qū)分表現(xiàn)層,業(yè)務層,數(shù)據(jù)層的注解 ,web開發(fā),提供3個@Component注解衍生注解(功能一樣)取代 括

    2024年01月16日
    瀏覽(46)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包