自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Mybatis_day06:Mybatis整合Spring

開發(fā) 前端
MyBatis-Spring 會幫助你將 MyBatis 代碼無縫地整合到 Spring 中。它將允許 MyBatis 參與到 Spring 的事務(wù)管理之中,創(chuàng)建映射器 mapper 和 SqlSession 并注入到 bean 中,以及將 Mybatis 的異常轉(zhuǎn)換為 Spring 的 DataAccessException。最終,可以做到應(yīng)用代碼不依賴于 MyBatis,Spring 或 MyBatis-Spring。

 

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

 Mybatis整合spring

  1. 整合思路
  2. SqlSessionFactory對象應(yīng)該放到spring容器中作為單例存在。
  3. 傳統(tǒng)dao的開發(fā)方式中,應(yīng)該從spring容器中獲得sqlsession對象。
  4. Mapper代理形式中,應(yīng)該從spring容器中直接獲得mapper的代理對象。
  5. 數(shù)據(jù)庫的連接以及數(shù)據(jù)庫連接池事務(wù)管理都交給spring容器來完成。

整合需要的jar包

  • spring的jar包
  • Mybatis的jar包
  • Spring+mybatis的整合包。
  • Mysql的數(shù)據(jù)庫驅(qū)動jar包。
  • 數(shù)據(jù)庫連接池的jar包。

整合的步驟

第一步:創(chuàng)建一個java工程。

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

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

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

1、數(shù)據(jù)庫連接及連接池

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

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

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

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

第六步:測試。

  1. SqlMapConfig.xml 
  2.  
  3. <?xml version="1.0" encoding="UTF-8" ?> 
  4.  
  5. <!DOCTYPE configuration 
  6.  
  7. PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
  8.  
  9. "http://mybatis.org/dtd/mybatis-3-config.dtd"
  10.  
  11. <configuration> 
  12.  
  13. <typeAliases> 
  14.  
  15. <package name="com.pp.mybatis.pojo"/> 
  16.  
  17. </typeAliases> 
  18.  
  19. <mappers> 
  20.  
  21. <mapper resource="sqlmap/User.xml"/> 
  22.  
  23. </mappers> 
  24.  
  25. </configuration> 
  26.  
  27. applicationContext.xml 
  28.  
  29. <?xml version="1.0" encoding="UTF-8"?> 
  30.  
  31. <beans xmlns="http://www.springframework.org/schema/beans" 
  32.  
  33. xmlns:context="http://www.springframework.org/schema/context" 
  34.  
  35. xmlns:p="http://www.springframework.org/schema/p" 
  36.  
  37. xmlns:aop="http://www.springframework.org/schema/aop" 
  38.  
  39. xmlns:tx="http://www.springframework.org/schema/tx" 
  40.  
  41. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  42.  
  43. xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
  44.  
  45. http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd 
  46.  
  47. 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 
  48.  
  49. http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd"> 
  50.  
  51. <!-- 加載配置文件 --> 
  52.  
  53. <context:property-placeholder location="classpath:db.properties" /> 
  54.  
  55. <!-- 數(shù)據(jù)庫連接池 --> 
  56.  
  57. <bean id="dataSource" 
  58.  
  59. class="org.apache.commons.dbcp.BasicDataSource" 
  60.  
  61. destroy-method="close"
  62.  
  63. <property name="driverClassName" value="${jdbc.driver}" /> 
  64.  
  65. <property name="url" value="${jdbc.url}" /> 
  66.  
  67. <property name="username" value="${jdbc.username}" /> 
  68.  
  69. <property name="password" value="${jdbc.password}" /> 
  70.  
  71. <property name="maxActive" value="10" /> 
  72.  
  73. <property name="maxIdle" value="5" /> 
  74.  
  75. </bean> 
  76.  
  77. <!-- mapper配置 --> 
  78.  
  79. <!-- 讓spring管理sqlsessionfactory 使用mybatis和spring整合包中的 --> 
  80.  
  81. <bean id="sqlSessionFactory" 
  82.  
  83. class="org.mybatis.spring.SqlSessionFactoryBean"
  84.  
  85. <!-- 數(shù)據(jù)庫連接池 --> 
  86.  
  87. <property name="dataSource" ref="dataSource" /> 
  88.  
  89. <!-- 加載mybatis的全局配置文件 --> 
  90.  
  91. <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" 
  92.  
  93. /> 
  94.  
  95. </bean> 
  96.  
  97. </beans> 

db.properties

  1. jdbc.driver=com.mysql.jdbc.Driver 
  2.  
  3. jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8 
  4.  
  5. jdbc.username=root 
  6.  
  7. jdbc.password=root 

Dao的開發(fā)

三種dao的實現(xiàn)方式:

1、傳統(tǒng)dao的開發(fā)方式

2、使用mapper代理形式開發(fā)方式

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

傳統(tǒng)dao的開發(fā)方式

接口+實現(xiàn)類來完成。需要dao實現(xiàn)類需要繼承SqlsessionDaoSupport類

Dao實現(xiàn)類

  1. public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { 
  2.  
  3. @Override 
  4.  
  5. public User findUserById(int id) throws Exception { 
  6.  
  7. SqlSession session = getSqlSession(); 
  8.  
  9. User user = session.selectOne("test.findUserById", id); 
  10.  
  11. //不能關(guān)閉SqlSession,讓spring容器來完成 
  12.  
  13. //session.close(); 
  14.  
  15. return user
  16.  
  17.  
  18. @Override 
  19.  
  20. public void insertUser(User user) throws Exception { 
  21.  
  22. SqlSession session = getSqlSession(); 
  23.  
  24. session.insert("test.insertUser"user); 
  25.  
  26. session.commit(); 
  27.  
  28. //session.close(); 
  29.  
  30.  

配置dao

把dao實現(xiàn)類配置到spring容器中

  1. <!-- 配置UserDao實現(xiàn)類 --> 
  2.  
  3. <bean id="userDao" class="com.pp.dao.UserDaoImpl"
  4.  
  5. <property name="sqlSessionFactory" ref="sqlSessionFactory"/> 
  6.  
  7. </bean> 
  8.  
  9. 測試方法 
  10.  
  11. 初始化: 
  12.  
  13. private ApplicationContext applicationContext; 
  14.  
  15. @Before 
  16.  
  17. public void setUp() throws Exception{ 
  18.  
  19. String configLocation = "classpath:spring/ApplicationContext.xml"
  20.  
  21. //初始化spring運行環(huán)境 
  22.  
  23. applicationContext = new ClassPathXmlApplicationContext(configLocation); 
  24.  
  25.  
  26. 測試: 
  27.  
  28. @Test 
  29.  
  30. public void testFindUserById() throws Exception { 
  31.  
  32. UserDao userDao = (UserDao) applicationContext.getBean("userDao"); 
  33.  
  34. User user = userDao.findUserById(1); 
  35.  
  36. System.out.println(user); 
  37.  

1.Mapper代理形式開發(fā)dao

   a.開發(fā)mapper接口

開發(fā)mapper文件

配置mapper代理

  1. <!-- 配置mapper代理對象 --> 
  2.  
  3. <bean class="org.mybatis.spring.mapper.MapperFactoryBean"
  4.  
  5. <property name="mapperInterface" 
  6.  
  7. value="com.pp.mybatis.mapper.UserMapper"/>** 
  8.  
  9. <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> 
  10.  
  11. </bean> 
  12.  
  13. 測試方法 
  14.  
  15. public class UserMapperTest { 
  16.  
  17. private ApplicationContext applicationContext; 
  18.  
  19. @Before 
  20.  
  21. public void setUp() throws Exception { 
  22.  
  23. applicationContext = new 
  24.  
  25. ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");** 
  26.  
  27.  
  28. @Test 
  29.  
  30. public void testGetUserById() { 
  31.  
  32. UserMapper userMapper = applicationContext.getBean(UserMapper.class); 
  33.  
  34. User user = userMapper.getUserById(1); 
  35.  
  36. System.out.println(user); 
  37.  
  38.  

掃描包形式配置mapper

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

  1. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
  2.  
  3. <property name="basePackage" value="com.pp.mybatis.mapper"></property> 
  4.  
  5. </bean> 

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

 【編輯推薦】

 

責任編輯:姜華 來源: 鍵盤蜂
相關(guān)推薦

2021-11-10 11:37:48

Spring整合 Mybatis

2022-11-15 08:10:23

SpringMyBatis底層

2017-05-12 15:47:15

Spring BootMybatis Ann Web

2020-11-05 10:59:45

Mybatis

2021-05-19 09:53:16

SpringbootMyBatisMySQL

2023-04-28 08:30:56

MyBatis架構(gòu)API

2020-11-04 08:28:11

Mybatis

2023-06-07 08:08:37

MybatisSpringBoot

2021-06-07 08:39:58

SpringBootMyBatisMapper

2021-09-08 10:23:08

讀寫分離Java數(shù)據(jù)庫

2024-12-20 16:49:15

MyBatis開發(fā)代碼

2021-01-05 05:36:39

設(shè)計Spring Boot填充

2024-01-16 08:17:29

Mybatis驗證業(yè)務(wù)

2019-07-29 11:00:56

MyBatis緩存SQL

2015-08-26 16:38:37

mybatissql

2022-07-11 09:00:37

依賴配置文件Mybati

2020-12-31 07:55:33

spring bootMybatis數(shù)據(jù)庫

2025-02-26 09:24:54

SpringMySQLMyBatis

2011-05-03 09:40:58

iBatis

2023-04-27 08:18:10

MyBatis緩存存儲
點贊
收藏

51CTO技術(shù)棧公眾號