溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring整合Mybatis

發(fā)布時間:2020-08-02 10:39:32 來源:網(wǎng)絡 閱讀:2529 作者:QuiteQuiet 欄目:編程語言

Spring & Mybatis

spring與Mybatis整合
核心思想:將SqlSessionFactory和SqlSession交給spring來管理

步驟

  1. 創(chuàng)建包 ,創(chuàng)建表,實體類
  2. 導入jar包
    Spring整合Mybatis

  3. 編輯配置文件

    • spring配置文件

      • 引入外部數(shù)據(jù)源,數(shù)據(jù)庫相關(guān)配置放在config.properties中
        <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        一般出現(xiàn)location都要使用classpath
        <property name="location" value="classpath:config.properties"/>
        </bean>
      • 使用連接池配置數(shù)據(jù)源,連接池用dbcp或者c3p0,不能同時配置,否則沖突
        在mybatis配置文件中不用再配置數(shù)據(jù)源相關(guān)信息
        使用的dbcp連接池:
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        value的值是外部數(shù)據(jù)文件的key
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
        </bean>

        或者使用c3p0 連接池
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${username}"/>
        <property name="password" value="${password}"/>
        </bean>

      • 配置SqlSessionFactory,用于創(chuàng)建sqlSession,使用整合包的類SqlSessionFactoryBean,用于使spring能夠提供SqlSessionFactory對象,需要指定配置文件路徑以及掃描mapper.xml映射文件
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        引入mybatis的配置文件
        <property name="configLocation" value="classpath:mybatisConfigure.xml"/>
        掃描mapper.xml映射
        <property name="mapperLocations" value="classpath:com/sky/mapperxml/*.xml"/>
        </bean>
      • 配置SqlSession,使用整合包的SqlSessionTemplate對象,使spring能夠提供sqlsession對象
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        由于SqlSessionTemplate中的sqlSessionFactory屬性沒有set方法,不能使用set注入依賴,有將SqlSessionFactory作為參數(shù)的構(gòu)造方法,所以使用構(gòu)造器注入
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
        </bean>
    • mybatis配置文件
      數(shù)據(jù)源與mapper.xml映射文件掃描已經(jīng)在spring配置文件中,mybatis配置文件只需要進行一些setting設置和別名設置等.
      <settings>
      <setting name="mapUnderscoreToCamelCase" value="true"/>
      <setting name="logImpl" value="STDOUT_LOGGING"/>
      <setting name="cacheEnabled" value="true"/>
      </settings>
      <typeAliases>
      <!-- type屬性表示的是全路徑 ,alias屬性表示別名-->
      <!-- <typeAlias type="com.homework.pojo.User" alias="User"/>-->
      <package name="com.sky.pojo"/>
      </typeAliases>
  4. 編寫mapper接口,并在spring配置文件添加mapperFactoryBean進行管理

    • 編寫controller層的mapper接口
      public interface UserMapper {
      User queryUserById(@Param("id") Integer id);
      }
    • 配置spring文件,將mapper接×××給spring管理
      使用整合包的MapperFactoryBean類,mapperInterface屬性值為接口路徑,需要注入SqlSessionFactory依賴
      <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
      <property name="mapperInterface" value="com.sky.mapper.UserMapper"/>
      <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
      </bean>
      使用Mybatis時使用SqlSessionFactory創(chuàng)建SqlSession對象,通過sqlsession對象的getMapper()方法指定接口名獲得mapper接口,所以這里要指定接口路徑并依賴SqlSessionFactory.
  5. 創(chuàng)建service類,注入mapper依賴,并在spring配置文件中將其交由spring管理

    • service類:
      public class UserService {@Autowired
      br/>@Autowired
      public User queryUserById(Integer id){
      User user = userMapper.queryUserById(id);
      return user;
      }
      }

    • spring配置:
      <bean id="userService" class="com.sky.service.UserService"/>
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI