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的配置文件中加入以下内容

Xml代码  

  1. <!-- MyBatis配置 -->
  2. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  3. <property name="dataSource" ref="c3p0DataSource" />
  4. <property name="configLocation" value="/WEB-INF/config/db/MyBatisConfiguration.xml" />
  5. <property name="mapperLocations" value="/WEB-INF/config/db/*Mapper.xml" />
  6. <property name="typeAliasesPackage" value="${mybatis.alias.basepackage}" />
  7. </bean>

1.SqlSessionFactoryBean (必需)

就是中间件所需的处理类

2.dataSource  (必需)

spring中数据源引用

3.configLocation  (可选)

Mybatis自身的配置文件,一般用来声明别名

4.mapperLocation  (可选)

mybatis的映射文件

5.typeAliasesPackage (可选)

要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明

使用mybatis进行数据处理的四种方式(SqlSessionTemplate/SqlSessionDaoSupport/MapperFactoryBean/MapperScannerConfigurer)

不同方式的特点

  1. SqlSessionTemplate  这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制
  2. SqlSessionDaoSupport   这个只需要在实现类中继承特殊类就可以使用sqlsession
  3. MapperFactoryBean  这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类
  4. MapperScannerConfigurer  这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,无需写实现类
  • SqlSessionTemplate
  1. 配置文件加入新配

    Java代码  

    1. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
    2. <constructor-arg index="0" ref="sqlSessionFactory" />
    3. <constructor-arg index="1" value="BATCH" /><!--- 如果想要进行批量操作可加入这个属性 ->
    4. </bean>
  2. 注入sqlsession()

    Java代码  

    1. @Reasource //使用spring3的注解注入
    2. private SqlSession sqlSession;
  3. 使用sqlsession来进行操作

    Java代码  

    1. public User getUser(String userId) {
    2. return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
    3. }
  • SqlSessionDaoSupport(sqlSessionFactory会被spring自动装配,不需要手动注入)
  1. 继承SqlSessionDaoSupport类

    Java代码  

    1. public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
    2. }
  2. 使用getSqlSession()方法取sqlSession来进行数据处理

    Java代码  

    1. public User getUser(String userId) {
    2. return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
    3. }
  • MapperFactoryBean
  1. 写配置文件,引入每个DAO接口

    Xml代码  

    1. <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
    2. <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
    3. <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    4. </bean>
  2. 在业务层可直接注入dao的接口进行操作
  • MapperScannerConfigurer
  1. 写配置文件,配置包名将自动引入包中的所有接口

    Xml代码  

    1. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    2. <property name="basePackage" value="org.mybatis.spring.sample.mapper" />
    3. </bean>
  2. 在业务层可直接注入DAO接口操作,注入时使用的是接口名,其首字母小写
  3. 注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误
时间: 2024-10-09 20:54:16

mybatis和spring3.1整合的相关文章

由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”

在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Mybatis),对于它,个人比较喜欢的是: 使用简单.方便: 支持的XML动态SQL的编写,方便浏览.修改,同时降低SQL与应用程序之间的耦合. 不喜欢的是: 出现错误时,调试不太方便 本文主要介绍Mybatis的搭建,是学习Mybatis过程后整理的札记,其中包括“单独搭建Mybaits”和常用的“M

【SpringMVC学习04】Spring、MyBatis和SpringMVC的整合

前两篇springmvc的文章中都没有和mybatis整合,都是使用静态数据来模拟的,但是springmvc开发不可能不整合mybatis,另外mybatis和spring的整合我之前学习mybatis的时候有写过一篇,但是仅仅是整合mybatis和spring,所以这篇文章我系统的总结一下spring.mybatis和springmvc三个框架的整合(后面学习到maven时,我会再写一篇使用maven整合的文章,这篇没有用到maven). 1. jar包管理 我之前有写过一篇spring.hi

Struts2,Spring3,Hibernate4整合--SSH框架

Struts2,Spring3,Hibernate4整合--SSH框架(学习中) 一.包的导入 1.Spring包 2.Hibernate 包 3.struts 包 4.数据库方面的包及junt4的包 二.配置文件 1.beans.xml (具体要注意的已经注释到 xml 中了,目前整合了Spring 与 hibernate4 ) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h

Mybatis使用之SpringMVC整合

Mybatis使用之SpringMVC整合 一:简介 主要记录Mybatis如何与SpringMVC框架整合.Mybatis真正与Spring结合更能体现出其灵活.便捷的特点.数据源交由Spring管理.事务交由Spring管理.配置文件.映射文件交由Spring加载.初始化.映射接口交由Spring注入等等.大大简化了Mybatis代码.配置量.Mybatis只需关心与数据库打交道.处理数据与实体类之间的映射即可. 二:环境介绍 主要是Mybatis3.2.8与Spring4.1.0之间的整合

MyBatis+Spring+Spring MVC整合开发

MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍一.课程用到的软件:1.jdk 1.82.eclispe luna3.tomcat 84.MySQL 5.1 +5.navicat 9 + 二.课程涉及到的技术点1.MyBatis基础,主要介绍2.MyBatis高级,3.SpringMVC基础4.SpringMVC高级5.My

SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBatis框架的学习(六)——MyBatis整合Spring.本文我再来讲SpringMVC和MyBatis整合开发的方法,这样的话,Spring.MyBatis和SpringMVC三大框架的整合开发我们就学会了.这里我使用的Spring是Spring4.1.3这个版本(SpringMVC自然也是这个版本),MyBatis是MyBatis3.2.7这个版本. 为了更好的学习SpringMVC和MyBatis整合开发的方法

Spring MVC+Mybatis+Maven+Velocity+Mysql整合实例

本篇文章将通过一个简单显示用户信息的实例整合Spring mvc+mybatis+Maven+velocity+mysql. 对于实现整合的重点在于以下几个配置文件的实现 1.Maven依赖包 2.spring配置文件(springContext-user.xml) 3.mybatis配置文件(MyBatis-User-Configuration.xml) 4.spring-mvc配置文件(spring-mvc.xml) 5.web.xml配置文件 源码下载地址:http://download.

(三)springmvc+mybatis+dubbo分布式架构 整合 - maven模块规划

上一篇我们介绍<springmvc+mybatis+zookeeper分布式架构 整合 - 平台功能导图>,从今天开始,我们针对于每一个独立的系统做详细的构建,顺便会把整个构建的过程全部记录下来,方便更多的开发者. 提醒: 在构建dubbo分布式平台之前,必须掌握好maven的相关技能,整个构建过程都是使用maven技术.在构建的过程中解决maven问题的时间往往比编码的时间还多,但这不能阻止我们对<构建dubbo分布式平台>之路,没有掌握好maven技能的开发者,可以在网站找一些

MyBatis和Spring的整合

 MyBatis和Spring整合(XML版) 所需要导入的jar文件 <!--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!