Spring与Mybatis的整合方法有哪些

本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接
http://code.google.com/p/mybatis/下载到。

1、采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数。

(1)Spring配置文件:

 <!-- 引入jdbc配置文件 -->
 <context:property-placeholder location="jdbc.properties"/>
 <!--创建jdbc数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 <property name="driverClassName" value="${driver}"/>
 <property name="url" value="${url}"/>
 <property name="username" value="${username}"/>
 <property name="password" value="${password}"/>
<property name="initialSize" value="${initialSize}"/>
<property name="maxActive" value="${maxActive}"/>
  <property name="maxIdle" value="${maxIdle}"/>
<property name="minIdle" value="${minIdle}"/>
 </bean>
 <!-- 创建SqlSessionFactory,同时指定数据源-->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource" />
</bean>
 <!--创建数据映射器,数据映射器必须为接口-->
   <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
 <property name="mapperInterface" value="com.xxt.ibatis.dbcp.dao.UserMapper" />
 <property name="sqlSessionFactory" ref="sqlSessionFactory" />
 </bean>
 <bean id="userDaoImpl2" class="com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl2">
 <property name="userMapper" ref="userMapper"/>
 </bean>

(2)数据映射器UserMapper,代码如下:

public interface UserMapper {
  @Select("SELECT * FROM user WHERE id = #{userId}")
 User getUser(@Param("userId") long id);
 } 

(3)dao接口类UserDao,代码如下:

public interface UserDao {
  public User getUserById(User user);
 }

(4)dao实现类UserDaoImpl2,,代码如下:

public class UserDaoImpl2 implements UserDao {
   private UserMapper userMapper;
   public void setUserMapper(UserMapper userMapper) {
   this.userMapper = userMapper;
  }
  public User getUserById(User user) {
   return userMapper.getUser(user.getId());
  }
 } 

2、采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate。

mybatis中, sessionFactory可由SqlSessionFactoryBuilder.来创建。

MyBatis-Spring 中,使用了SqlSessionFactoryBean来替代。
SqlSessionFactoryBean有一个必须属性dataSource,另外其还有一个通用属性configLocation(用来指定mybatis的xml配置文件路径)。

(1)Spring配置文件:

<!-- 创建SqlSessionFactory,同时指定数据源--> 
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">    
 <property name="dataSource" ref="dataSource" />    
 <!-- 指定sqlMapConfig总配置文件,订制的environment在spring容器中不在生效-->  
 <property  name="configLocation"  value="classpath:sqlMapConfig.xml"/>  
 <!--指定实体类映射文件,可以指定同时指定某一包以及子包下面的所有配置文件,mapperLocations和configLocation有一个即可,当需要为实体类指定别名时,可指定configLocation属性,再在mybatis总配置文件中采用mapper引入实体类映射文件 --> 
  <!- - <property  name="mapperLocations"  value="classpath*:com/xxt/ibatis/dbcp/**/*.xml"/>  -->
 <bean>

(2)mybatis总配置文件sqlMapConfig.xml:

<configuration>
 <typeAliases>
 <typeAlias type="com.xxt.ibatis.dbcp.domain.User" alias="User" />
 </typeAliases>
<mappers>
 <mapper resource="com/xxt/ibatis/dbcp/domain/user.map.xml" />
 </mappers>
 </configuration> 

(3)实体类映射文件user.map.xml:

<mapper namespace="com.xxt.ibatis.dbcp.domain.User">
 <resultMap type="User" id="userMap">
 <id property="id" column="id" />
  <result property="name" column="name" />
  <result property="password" column="password" />
   <result property="createTime" column="createtime" />
  </resultMap>
  <select id="getUser" parameterType="User" resultMap="userMap">
   select * from user where id = #{id}
</select>
 <mapper/> 

 (4)dao层接口实现类UserDaoImpl:

Java代码

public class UserDaoImpl implements UserDao {
  public SqlSessionTemplate sqlSession;
   public User getUserById(User user) {
   return (User)sqlSession.selectOne("com.xxt.ibatis.dbcp.domain.User.getUser", user);
   }
  public void setSqlSession(SqlSessionTemplate sqlSession) {
  this.sqlSession = sqlSession;   }
 } 

3、采用抽象类org.mybatis.spring.support.SqlSessionDaoSupport提供SqlSession。

   (1)spring配置文件:

Java代码

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource" />
 <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
 <!-- <property name="mapperLocations" value="classpath*:com/xxt/ibatis/dbcp/domain/user.map.xml"/  > -->
</bean>
 <bean id="sqlSession"   class="org.mybatis.spring.SqlSessionTemplate">
 <constructor-arg index="0" ref="sqlSessionFactory" />
 </bean>
 <bean id="userDaoImpl3" class="com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl3">
 <!--注入SqlSessionTemplate实例 -->
<property name="sqlSessionTemplate" ref="sqlSession" />
 <!--也可直接注入SqlSessionFactory实例,二者都指定时,SqlSessionFactory失效 -->
 <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory" />  -->
 </bean> 

  (2) dao层接口实现类UserDaoImpl3:

Java代码

public class UserDaoImpl3 extends SqlSessionDaoSupport implements UserDao {
  public User getUserById(User user) {
  return (User) getSqlSession().selectOne("com.xxt.ibatis.dbcp.domain.User.getUser", user);
}
 }
(0)

相关推荐

  • spring与mybatis三种整合方法

    1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean. spring-mybatis.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3

  • 浅析Spring和MyBatis整合及逆向工程

    spring和mybatis整合 整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.0的jar包 mybatis和spring的整合

  • springboot与mybatis整合实例详解(完美融合)

    简介 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boot 的作用在于创建和启动新的基于 Spring 框架的项目.它的目的是帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用.Spring Boot 会选择最适合的 Spring 子项目和第三方开源库进行整合.大部分 Spring Boot 应用只需要非常少的配置就可以快速运行起来. Spring Boot 包含的特性如下: 创建可以独立运行的 Spring 应用. 直接嵌入 Tomc

  • 浅析mybatis和spring整合的实现过程

    根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持.因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求.下面就将通过Mybatis-Spring来整合Mybatis跟Spring的用法做一个简单的介绍. MapperFactoryBean 首先,我们需要从Mybatis官网上下载Mybatis-Spring的jar包添加到我们项

  • 详解Java的MyBatis框架与Spring框架整合中的映射器注入

    MyBatis-Spring允许你在Service Bean中注入映射器.当使用映射器时,就像调用DAO那样来调用映射器就可以了,但是此时你就不需要进行任何DAO实现的编码,因为MyBatis会为你进行. 使用注入的映射器,你的代码就不会出现任何MyBatis-Spring依赖和MyBatis依赖.在我们的应用中有这样一个简单的映射器.你也应该知道映射器仅仅是一个接口: public interface UserMapper { User getUser(String userId); } 这是

  • SpringMVC整合mybatis实例代码

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 一.逆向工程生成基础信息 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis G

  • AngularJS整合Springmvc、Spring、Mybatis搭建开发环境

    最近想学习AngularJS的使用,网上搜了一圈后,折腾了半天解决bug后,成功使用AngularJS整合Springmvc.Spring.Mybatis搭建了一个开发环境.(这里Spring使用的版本是4.0.6,Mybatis版本是3.2.5,AngularJS的版本是1.0.3) 第一步:创建一Maven项目,在pom.xml下添加需要的包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="

  • Spring与Mybatis基于注解整合Redis的方法

    基于这段时间折腾redis遇到了各种问题,想着整理一下.本文主要介绍基于Spring+Mybatis以注解的形式整合Redis.废话少说,进入正题. 首先准备Redis,我下的是Windows版,下载后直接启动redis-server就行了,见下图: 一,先上jar包 二,创建实体类 package com.sl.user.vo; import java.io.Serializable; import com.fasterxml.jackson.databind.PropertyNamingSt

  • Spring整合MyBatis(Maven+MySQL)图文教程详解

    一. 使用Maven创建一个Web项目 为了完成Spring4.x与MyBatis3.X的整合更加顺利,先回顾在Maven环境下创建Web项目并使用MyBatis3.X,第一.二点内容多数是回顾过去的内容 . 1.2.点击"File"->"New"->"Other"->输入"Maven",新建一个"Maven Project",如下图所示: 1.2.请勾选"Create a si

  • 详解Spring与Mybatis的整合方法(基于Eclipse的搭建)

    项目工程总览: 项目路径建的包不是唯一,只要之后配置的路径映射正确即可 Emp.java <properties> <spring.version>5.1.5.RELEASE</spring.version> <mybatis.version>3.4.6</mybatis.version> <log4j.version>1.2.17</log4j.version> </properties> <depen

  • Spring与Mybatis的整合方法有哪些

    本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接 http://code.google.com/p/mybatis/下载到. 1.采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数. (1)Spring配置文件: <!-- 引入jdbc配置文件 --> <context:property-placeholder location=&q

  • Spring Boot+Mybatis的整合过程

    依赖配置 结合前面的内容,这里我们要嵌入数据库的操作,这里以操作MySQL为例整合Mybatis,首先需要在原来的基础上添加以下依赖 <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1<

  • 纯注解版spring与mybatis的整合过程

    今天给大家分享纯注解版spring与mybatis的整合 mybatis包下:有这几个,上面图片没有展开 配置Bean:MyBatisAutoConfiguration User UserDAO MybatisProperties MyBatisAutoConfiguration: package com.baizhiedu.mybatis; import com.alibaba.druid.pool.DruidDataSource; import org.mybatis.spring.SqlS

  • 详解Spring与MyBatis的整合的方法

    目录 一.问题提出 二.解决方案 三.MyBatis逆向工程 pom文件 generatorConfig.xml 四.Spring与mybatis的配置文件 主模块依赖jar包 spring-persist-mybatis.xml 文件目录 五.测试 六.总结 总结 一.问题提出 mybatis是根据mapper.xml文件动态生成mapper接口的实现类,按照Spring的常规组件扫描的方式不能添加到IOC容器中,需要做出相应的配置 二.解决方案 图片摘自尚硅谷尚筹网项目文档. 如图可知,需要

  • Spring+SpringMVC+MyBatis整合详细教程(SSM)

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些.以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下.这次,先说说三大框架整合过程.个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就

  • 使用maven整合Spring+SpringMVC+Mybatis框架详细步骤(图文)

    (项目结构图参照文章末尾) 1.创建maven工程,在pom.xml文件中导入需要的jar包依赖: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach

  • SSM框架整合之Spring+SpringMVC+MyBatis实践步骤

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spr

随机推荐