日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Mybatis_day06:Mybatis整合Spring

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

站在用戶的角度思考問題,與客戶深入溝通,找到丹寨網(wǎng)站設(shè)計(jì)與丹寨網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋丹寨地區(qū)。

Mybatis整合spring

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

整合需要的jar包

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

整合的步驟

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

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

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

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

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

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

3、sqlsessionFactory對(duì)象,配置到spring容器中

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

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

第六步:測試。

 
 
 
 
  1. SqlMapConfig.xml 
  2.  
  3.  
  4.  
  5.  
  6. PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
  7.  
  8. "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. applicationContext.xml 
  27.  
  28.  
  29.  
  30.  
  31. xmlns:context="http://www.springframework.org/schema/context" 
  32.  
  33. xmlns:p="http://www.springframework.org/schema/p" 
  34.  
  35. xmlns:aop="http://www.springframework.org/schema/aop" 
  36.  
  37. xmlns:tx="http://www.springframework.org/schema/tx" 
  38.  
  39. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  40.  
  41. xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
  42.  
  43. http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd 
  44.  
  45. 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 
  46.  
  47. http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd"> 
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. class="org.apache.commons.dbcp.BasicDataSource" 
  57.  
  58. destroy-method="close"> 
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79. class="org.mybatis.spring.SqlSessionFactoryBean"> 
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88. /> 
  89.  
  90.  
  91.  
  92.  

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的實(shí)現(xiàn)方式:

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

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

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

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

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

Dao實(shí)現(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實(shí)現(xiàn)類配置到spring容器中

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  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運(yùn)行環(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.  
  2.  
  3.  
  4.  
  5.  
  6. value="com.pp.mybatis.mapper.UserMapper"/>** 
  7.  
  8.  
  9.  
  10.  
  11.  
  12. 測試方法 
  13.  
  14. public class UserMapperTest { 
  15.  
  16. private ApplicationContext applicationContext; 
  17.  
  18. @Before 
  19.  
  20. public void setUp() throws Exception { 
  21.  
  22. applicationContext = new 
  23.  
  24. ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");** 
  25.  
  26.  
  27. @Test 
  28.  
  29. public void testGetUserById() { 
  30.  
  31. UserMapper userMapper = applicationContext.getBean(UserMapper.class); 
  32.  
  33. User user = userMapper.getUserById(1); 
  34.  
  35. System.out.println(user); 
  36.  
  37.  

掃描包形式配置mapper

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  

每個(gè)mapper代理對(duì)象的id就是類名,首字母小寫

 【編輯推薦】

  1. TIOBE 11月榜單:Python擠掉了Java!
  2. React Concurrent Mode三連:是什么/為什么/怎么做
  3. Linux高性能網(wǎng)絡(luò)編程之TCP連接的內(nèi)存使用
  4. Python曾是程序員的“瑞士軍刀”,而如今正被慢慢取代
  5. 全球疫情下的網(wǎng)絡(luò)安全:警惕“趁火打劫”的線上攻擊

文章標(biāo)題:Mybatis_day06:Mybatis整合Spring
瀏覽路徑:http://www.5511xx.com/article/cdopggp.html