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文件

第六步:测试。

 
 
 
 
  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的开发

三种dao的实现方式:

1、传统dao的开发方式

2、使用mapper代理形式开发方式

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

传统dao的开发方式

接口+实现类来完成。需要dao实现类需要继承SqlsessionDaoSupport类

Dao实现类

 
 
 
 
  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. //不能关闭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实现类配置到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运行环境 
  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代理形式开发dao

   a.开发mapper接口

开发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.  

每个mapper代理对象的id就是类名,首字母小写

 【编辑推荐】

  1. TIOBE 11月榜单:Python挤掉了Java!
  2. React Concurrent Mode三连:是什么/为什么/怎么做
  3. Linux高性能网络编程之TCP连接的内存使用
  4. Python曾是程序员的“瑞士军刀”,而如今正被慢慢取代
  5. 全球疫情下的网络安全:警惕“趁火打劫”的线上攻击

当前标题:Mybatis_day06:Mybatis整合Spring
分享网址:http://www.stwzsj.com/qtweb/news14/5164.html

成都网站建设公司_创新互联,为您提供定制网站网站改版虚拟主机品牌网站建设用户体验软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联