Mybaits整合Spring
整合思路
1、SqlSessionFactory对象应该放到spring容器中作为单例存在。
2、传统dao的开发方式中,应该从spring容器中获得sqlsession对象。
3、Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。
4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。
整合需要的jar包
1、spring的jar包
2、Mybatis的jar包
3、Spring+mybatis的整合包。
4、Mysql的数据库驱动jar包。
5、数据库连接池的jar包。
jar包位置如下所示:
加入配置文件
1. mybatisSpring的配置文件sqlmapConfig.xml
a) 数据库连接及连接池
- <!-- 加载配置文件 -->
- <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>
b) 事务管理(暂时可以不配置)
c) sqlsessionFactory对象,配置到spring容器中
- <!-- 配置SqlSessionFactory -->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!-- 配置mybatis核心配置文件 -->
- <property name="configLocation" value="classpath:SqlMapConfig.xml" />
- <!-- 配置数据源 -->
- <property name="dataSource" ref="dataSource" />
- </bean>
d) mapeer代理对象或者是dao实现类配置到spring容器中。
1.dao实现类配置到spring容器中:
原始的DAO开发是 接口+实现类来完成。
需要dao实现类需要继承SqlsessionDaoSupport类
因为SqlSessionDaoSupport提供getSqlSession()方法来获取SqlSession
例如:
- public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
- @Override
- public User queryUserById(int id) {
- // SqlSessionDaoSupport提供getSqlSession()方法来获取SqlSession
- SqlSession sqlSession = super.getSqlSession();
- // 使用SqlSession执行操作
- User user = sqlSession.selectOne("queryUserById", id);
- // 不要关闭sqlSession
- return user;
- }
- }
接着把dao实现类配置到spring容器中,如下
- <!-- 原始的DAO开发,将实现类配到spring中 -->
- <bean id="userDao" class="com.xk.mybatis.dao.impl.UserDaoImpl">
<!-- 配置sqlSessionFactory-->
<property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
</bean>
编写测试类:
- public class UserDaoTest {
- private ApplicationContext context;
- @Before
- public void setUp() throws Exception {
- this.context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
- }
- @Test
- public void testQueryUserById() {
- // 获取userDao
- UserDao userDao = this.context.getBean(UserDao.class);
- User user = userDao.queryUserById(1);
- System.out.println(user);
- }
- }
2.mapeer代理对象配置到spring容器中:
(1)编写UserMapper.xml配置文件
(2)实现UserMapper接口
(3)在applicationContext.xml添加配置
MapperFactoryBean也是属于mybatis-spring整合包
- <!-- Mapper代理的方式开发方式一,配置Mapper代理对象(一个mapper一个mapper的配) -->
- <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
- <!-- 配置Mapper接口 -->
- <property name="mapperInterface" value="com.xk.mybatis.mapper.UserMapper" />
- <!-- 配置sqlSessionFactory -->
- <property name="sqlSessionFactory" ref="sqlSessionFactory" />
- </bean>
或者
- <!-- Mapper代理的方式开发方式二,扫描包方式配置代理(一下扫描全部) -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <!-- 配置Mapper接口 -->
- <property name="basePackage" value="com.xk.mybatis.mapper" />
- </bean>
- <!--每个mapper代理对象的id就是类名,首字母小写 -->
Mybaits整合Spring的更多相关文章
- Mybaits整合Spring自动扫描 接口,Mybaits配置文件.xml文件和Dao实体类
1.转自:https://blog.csdn.net/u013802160/article/details/51815077 <?xml version="1.0" enco ...
- 使用maven整合spring+springmvc+mybatis
使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...
- OSGI企业应用开发(八)整合Spring和Mybatis框架(一)
到目前为止,我们已经学习了如何使用Blueprint將Spring框架整合到OSGI应用中,并学习了Blueprint&Gemini Blueprint的一些使用细节.本篇文章开始,我们將My ...
- 【Java EE 学习 81】【CXF框架】【CXF整合Spring】
一.CXF简介 CXF是Apache公司下的项目,CXF=Celtix+Xfire:它支持soap1.1.soap1.2,而且能够和spring进行快速无缝整合. 另外jax-ws是Sun公司发布的一 ...
- Mybatis整合Spring
根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持.因此由Mybatis社区自己开发了一个My ...
- mybatis入门_一对多,多对多映射以及整合spring框架
一.一对多映射. 1.1 一对多映射之根据多的一方关联查询一的一方 示例:查询出具体的订单信息,同时也查询出来订单的用户信息. 引入的订单表如下所示: 框选出来的为具体的外键. 订单的Pojo类如下所 ...
- 《SSM框架搭建》三.整合spring web
感谢学习http://blog.csdn.net/zhshulin/article/details/37956105#,还是修改了spring到最新的版本和接口开发示例 根据前一篇日志,已经有了myb ...
- Maven 整合 spring profile实现多环境自动切换
Maven 整合 spring profile实现多环境自动切换 时间:2014-03-19 15:32来源:Internet 作者:Internet 点击:525次 profile主要用在项目多环境 ...
- TinyFrame续篇:整合Spring IOC实现依赖注入
上一篇主要讲解了如何搭建基于CodeFirst的ORM,并且在章节末我们获取了上下文对象的实例:BookContext.这节主要承接上一篇,来讲解如何整合Spring IOC容器实现控制反转,依赖注入 ...
随机推荐
- http和https工具类 (要注意httpclient版本号和log4j的版本号)
1 工具类 package dd.com; import java.io.IOException; import java.security.cert.CertificateException; im ...
- Difference between BeanFactory and FactoryBean in Spring Framework (Spring BeanFactory与Factory区别)
参见原文:http://www.geekabyte.io/2014/11/difference-between-beanfactory-and.html geekAbyte Codes and Ran ...
- python之xml 文件的读取方法
''' xml 文件的读取方法 ''' #!/usr/bin/env python # -*- coding: utf- -*- import xml.etree.ElementTree as ET ...
- 面试官问,说一个你在工作非常有价值的bug
如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ...
- mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)
目录 1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 ...
- 《Spring Boot 入门及前后端分离项目实践》系列介绍
课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...
- Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作
本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...
- python爬虫随笔(2)—启动爬虫与xpath
启动爬虫 在上一节中,我们已经创建好了我们的scrapy项目,看着这一大堆文件,想必很多人都会一脸懵逼,我们应该怎么启动这个爬虫呢? 既然我们采用cmd命令创建了scrapy爬虫,那就得有始有终有逼格 ...
- Python-SMTP发送邮件(HTML、图片、附件)
前言: SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. 一.Python发送HTML ...
- H5 14-后代选择器和子元素选择器
14-后代选择器和子元素选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...