溫馨提示×

溫馨提示×

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

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

Mybatis_day06:Mybatis整合Spring的步驟是什么

發布時間:2021-10-25 11:40:53 來源:億速云 閱讀:215 作者:iii 欄目:web開發

本篇內容介紹了“Mybatis_day06:Mybatis整合Spring的步驟是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

MyBatis-Spring 會幫助你將 MyBatis 代碼無縫地整合到 Spring 中。它將允許 MyBatis 參與到 Spring  的事務管理之中,創建映射器 mapper 和 SqlSession 并注入到 bean 中,以及將 Mybatis 的異常轉換為 Spring 的  DataAccessException。最終,可以做到應用代碼不依賴于 MyBatis,Spring 或 MyBatis-Spring。

 Mybatis整合spring

  1. 整合思路

  2. SqlSessionFactory對象應該放到spring容器中作為單例存在。

  3. 傳統dao的開發方式中,應該從spring容器中獲得sqlsession對象。

  4. Mapper代理形式中,應該從spring容器中直接獲得mapper的代理對象。

  5. 數據庫的連接以及數據庫連接池事務管理都交給spring容器來完成。

整合需要的jar包

  • spring的jar包

  • Mybatis的jar包

  • Spring+mybatis的整合包。

  • Mysql的數據庫驅動jar包。

  • 數據庫連接池的jar包。

整合的步驟

第一步:創建一個java工程。

第二步:導入jar包。(上面提到的jar包)

第三步:mybatis的配置文件sqlmapConfig.xml

第四步:編寫Spring的配置文件

1、數據庫連接及連接池

2、事務管理(暫時可以不配置)

3、sqlsessionFactory對象,配置到spring容器中

4、mapeer代理對象或者是dao實現類配置到spring容器中。

第五步:編寫dao或者mapper文件

第六步:測試。

SqlMapConfig.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>  <typeAliases>  <package name="com.pp.mybatis.pojo"/>  </typeAliases>  <mappers>  <mapper resource="sqlmap/User.xml"/>  </mappers>  </configuration>  applicationContext.xml  <?xml version="1.0" encoding="UTF-8"?>  <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:context="http://www.springframework.org/schema/context"  xmlns:p="http://www.springframework.org/schema/p"  xmlns:aop="http://www.springframework.org/schema/aop"  xmlns:tx="http://www.springframework.org/schema/tx"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd  http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd  http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd  http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd">  <!-- 加載配置文件 -->  <context:property-placeholder location="classpath:db.properties" />  <!-- 數據庫連接池 -->  <bean id="dataSource"  class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close">  <property name="driverClassName" value="${jdbc.driver}" />  <property name="url" value="${jdbc.url}" />  <property name="username" value="${jdbc.username}" />  <property name="password" value="${jdbc.password}" />  <property name="maxActive" value="10" />  <property name="maxIdle" value="5" />  </bean>  <!-- mapper配置 -->  <!-- 讓spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->  <bean id="sqlSessionFactory"  class="org.mybatis.spring.SqlSessionFactoryBean">  <!-- 數據庫連接池 -->  <property name="dataSource" ref="dataSource" />  <!-- 加載mybatis的全局配置文件 -->  <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"  />  </bean>  </beans>

db.properties

jdbc.driver=com.mysql.jdbc.Driver  jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8  jdbc.username=root  jdbc.password=root

Dao的開發

三種dao的實現方式:

1、傳統dao的開發方式

2、使用mapper代理形式開發方式

3、使用掃描包配置mapper代理。

傳統dao的開發方式

接口+實現類來完成。需要dao實現類需要繼承SqlsessionDaoSupport類

Dao實現類

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {  @Override  public User findUserById(int id) throws Exception {  SqlSession session = getSqlSession();  User user = session.selectOne("test.findUserById", id);  //不能關閉SqlSession,讓spring容器來完成  //session.close();  return user;  }  @Override  public void insertUser(User user) throws Exception {  SqlSession session = getSqlSession();  session.insert("test.insertUser", user);  session.commit();  //session.close();  }  }

配置dao

把dao實現類配置到spring容器中

<!-- 配置UserDao實現類 -->  <bean id="userDao" class="com.pp.dao.UserDaoImpl">  <property name="sqlSessionFactory" ref="sqlSessionFactory"/>  </bean>  測試方法  初始化:  private ApplicationContext applicationContext;  @Before  public void setUp() throws Exception{  String configLocation = "classpath:spring/ApplicationContext.xml";  //初始化spring運行環境  applicationContext = new ClassPathXmlApplicationContext(configLocation);  }  測試:  @Test  public void testFindUserById() throws Exception {  UserDao userDao = (UserDao) applicationContext.getBean("userDao");  User user = userDao.findUserById(1);  System.out.println(user);  }

1.Mapper代理形式開發dao

 a.開發mapper接口

開發mapper文件

Mybatis_day06:Mybatis整合Spring的步驟是什么

配置mapper代理

<!-- 配置mapper代理對象 -->  <bean class="org.mybatis.spring.mapper.MapperFactoryBean">  <property name="mapperInterface"  value="com.pp.mybatis.mapper.UserMapper"/>**  <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  </bean>  測試方法  public class UserMapperTest {  private ApplicationContext applicationContext;  @Before  public void setUp() throws Exception {  applicationContext = new  ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");**  }  @Test  public void testGetUserById() {  UserMapper userMapper = applicationContext.getBean(UserMapper.class);  User user = userMapper.getUserById(1);  System.out.println(user);  }  }

掃描包形式配置mapper

<!-- 使用掃描包的形式來創建mapper代理對象 -->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  <property name="basePackage" value="com.pp.mybatis.mapper"></property>  </bean>

每個mapper代理對象的id就是類名,首字母小寫

Mybatis_day06:Mybatis整合Spring的步驟是什么

“Mybatis_day06:Mybatis整合Spring的步驟是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女