mybatis和spring3.1整合
因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件。
需要的jar包
mybatis-3.0.6.jar
mybatis-spring-1.0.2.jar
要点:
1.在spring中配置mybatis工厂类
2.在dao层使用spring注入的的工具bean对数据进行操作
整合时,可以有四种方式来使用mybatis进行数据处理。
spring 中必须的配置。
spring的配置文件中加入以下内容
- <!-- MyBatis配置 -->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="c3p0DataSource" />
- <property name="configLocation" value="/WEB-INF/config/db/MyBatisConfiguration.xml" />
- <property name="mapperLocations" value="/WEB-INF/config/db/*Mapper.xml" />
- <property name="typeAliasesPackage" value="${mybatis.alias.basepackage}" />
- </bean>
1.SqlSessionFactoryBean (必需)
就是中间件所需的处理类
2.dataSource (必需)
spring中数据源引用
3.configLocation (可选)
Mybatis自身的配置文件,一般用来声明别名
4.mapperLocation (可选)
mybatis的映射文件
5.typeAliasesPackage (可选)
要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明
使用mybatis进行数据处理的四种方式(SqlSessionTemplate/SqlSessionDaoSupport/MapperFactoryBean/MapperScannerConfigurer)
不同方式的特点
- SqlSessionTemplate 这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制
- SqlSessionDaoSupport 这个只需要在实现类中继承特殊类就可以使用sqlsession
- MapperFactoryBean 这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类
- MapperScannerConfigurer 这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,无需写实现类
- SqlSessionTemplate
- 配置文件加入新配
- <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
- <constructor-arg index="0" ref="sqlSessionFactory" />
- <constructor-arg index="1" value="BATCH" /><!--- 如果想要进行批量操作可加入这个属性 ->
- </bean>
- 注入sqlsession()
- @Reasource //使用spring3的注解注入
- private SqlSession sqlSession;
- 使用sqlsession来进行操作
- public User getUser(String userId) {
- return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
- }
- SqlSessionDaoSupport(sqlSessionFactory会被spring自动装配,不需要手动注入)
- 继承SqlSessionDaoSupport类
- public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
- }
- 使用getSqlSession()方法取sqlSession来进行数据处理
- public User getUser(String userId) {
- return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
- }
- MapperFactoryBean
- 写配置文件,引入每个DAO接口
- <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
- <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
- <property name="sqlSessionFactory" ref="sqlSessionFactory" />
- </bean>
- 在业务层可直接注入dao的接口进行操作
- MapperScannerConfigurer
- 写配置文件,配置包名将自动引入包中的所有接口
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="org.mybatis.spring.sample.mapper" />
- </bean>
- 在业务层可直接注入DAO接口操作,注入时使用的是接口名,其首字母小写
- 注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误
mybatis和spring3.1整合的更多相关文章
- Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码)
Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码) 备注: 之前在Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合中 ...
- 【Java EE 学习 79 下】【动态SQL】【mybatis和spring的整合】
一.动态SQL 什么是动态SQL,就是在不同的条件下,sql语句不相同的意思,曾经在“酒店会员管理系统”中写过大量的多条件查询,那是在SSH的环境中,所以只能在代码中进行判断,以下是其中一个多条件查询 ...
- 由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”
在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Myb ...
- Spring3+MyBatis3整合log4j无法输出SQL语句问题的解决
今天遇到了跟下面文章一模一样的问题,下面文章的解决方案很好,在这里记录保存一下. Spring3+MyBatis3整合无法输出SQL语句问题的解决
- MyBatis+Spring+Spring MVC整合开发
MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuy ...
- SSM :MyBatis与Spring的整合
MyBatis与Spring的整合 一:Spring整合MyBatis的准备工作: (1.)在项目中加入Spring,ByBatis及整合相关的jar文件 (2.)建立开发目录结构,创建实体类 (3. ...
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- mybatis与spring的整合(代码实现)
mybatis与spring的整合(代码实现) 需要jar包: mybatis核心包:依赖包:log4j包:spring croe;beans;tx;aop;aspects;context;expre ...
- MyBatis高级篇之整合ehcache缓存框架
MyBatis高级篇之整合ehcache缓存框架 2017-09-01 0 Comments 1,671 Views 0 Times 一.前言 MyBatis为我们提供了Cache接口,也提供 ...
随机推荐
- C#学习笔记之线程 - 使用线程
基于事件的异步模式 (EAP -- The Event-Based Asynchronous Pattern) EAP提供了一个简单的办法,通过它的类能够提供多线程能力,而不需显式的开启或管理线程.它 ...
- js知识简单归纳
js简单的归纳 基本类型 number,string,boolean,null,undefined 组合类型 一种对象类型: object 数组 函数 对象 正则 关于函数 作用域 闭包 构造函数 原 ...
- [easyui] datebox源码阅读. 批注
jquery.datebox.js 文件. (function($){ /** * create date box */ function createBox(target){ var state = ...
- Spring boot 1.3.5 RELEASE 官方文档中文翻译--Part2:新手入门
Part II. 新手入门 如果你刚刚开始学习Spring boot或"普通"的Spring,这部分非常适合你!在这里,我们回答了最基础的"什么是?".&quo ...
- Powerful Sleep(神奇的睡眠-睡眠生物钟的秘密:如何睡得更少却睡得更好)阅读笔记
睡眠机制 我们活着的时候,大脑会产生脑电波.脑电图仪器通过贴在人头上的一些电极读出脑电波的活动,然后把活动用图表显示出来. 睡眠过程可以分为5个过程,划分依据与大脑发出的脑电波类型. 当人清醒时,大脑 ...
- Ng机器学习笔记-1-一元线性回归
一:回归模型介绍 从理论上讲,回归模型即用已知的数据变量来预测另外一个数据变量,已知的数据属性称为输入或者已有特征,想要预测的数据称为输出或者目标变量. 下图是一个例子: 图中是某地区的面积大小与房价 ...
- DEDECMS中,arclist标签
文档列表 dede:arclist 标签: {dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidt ...
- 【ZeroMQ】消息模式
1.请求/应答模式(REP/REQ) 该模式特征: 服务器使用REP类型套接字而客户端使用REQ类型套接字 客户端发送请求和接收答复,而服务器则接收请求并发送答复 客户端可以连接到一个或多个服务器.在 ...
- wampserver安装后的基本配置
wampserver安装后的基本配置 1.WampServer的安装 下载好安装包后,你能在保存其文件夹中找到这样一个图标: 双击它,会弹出如下提示 提示信息:不要试图从Wamp5 1.x(x代表任意 ...
- fineui框架
http://fineui.com/demo/#/demo/layout/fit.aspx 虽然比较丑陋,但功能实用 此框架比较简单, 框架的作用你懂的,重点是要有帮助文档, 进阶型的容易上手的帮助文 ...