文档章节

spring与mybatis三种整合方法

山海经
 山海经
发布于 2014/06/22 21:57
字数 754
阅读 509
收藏 1
点赞 0
评论 0

本文主要介绍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>  

 

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

public  interface UserMapper {     
     @Select( "SELECT * FROM user WHERE id = #{userId}")        
  User getUser( @Param( "userId"long id);   
 }  
 
 
dao接口类UserDao,代码如下:
Java代码
public  interface UserDao {   
     public User getUserById(User user);  
 }  
 
dao实现类UserDaoImpl2,,代码如下:
Java代码
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);     
  }  

© 著作权归作者所有

共有 人打赏支持
山海经
粉丝 32
博文 159
码字总数 40723
作品 0
广州
程序员
Mybatis-Generator插件的使用与Spring集成Mybatis的配置

Mybatis-Generator插件 Mybatis-Generator是一个用于自动生成dao层接口、pojo以及mapper xml的一个Mybatis插件,该插件有三种用法:命令行运行、Eclipse插件、maven插件。个人觉得maven插件最...

ZeroOne01 ⋅ 04/15 ⋅ 0

ZHENFENGSHISAN/perfect-ssm

Quick Start 项目简介 ssm系列 ssm-demo:Spring+SpringMVC+Mybatis+easyUI整合 perfect-ssm:RESTful API+redis缓存 ssm-cluster:前后端分离+集群部署 ssm-dubbo:dubbo服务化 ssm-micro-se......

ZHENFENGSHISAN ⋅ 2017/09/18 ⋅ 0

springmvc和mybatis整合—商品查询

1. 需求 使用springmvc和mybatis完成商品列表查询。 2. 整合思路 springmvc+mybaits的系统架构: 系统架构 3. 准备环境 数据库环境:mysql5.5 数据库表 java环境: jdk1.8 IDEA 所需要的jar...

小小蒜头 ⋅ 2017/12/11 ⋅ 0

springmvc学习笔记(6)-springmvc整合mybatis(IDEA中通过maven构建

springmvc学习笔记(6)-springmvc整合mybatis(IDEA中通过maven构建) 标签: springmvc mybatis [TOC] 本文主要展示如何在intellij IDEA中通过maven构建springmvc+mybatis框架的开发环境。 需求...

brianway ⋅ 2016/03/10 ⋅ 0

SSM整合,个人总结和step

我最近才整合完SSM。 前段时间,分开学习了这三个框架,都是看某黄埔军校的视频,整合的部分没看视频,想自己做。 但是有一些部分自己没有能完成,主要是如何从spring容器里取出Application...

wzlhlhhh ⋅ 05/11 ⋅ 0

【Spring+SpringMVC+Mybatis】利用SSM整合,完成用户登录、注册、修改密码系统

近年来,由于Struts2+Hibernate3+Spring3,这套SSH框架,Struts2屡次爆出安全漏洞,Hibernate就只会推行它HQL那套而越来越远离SQL查询关系数据库的本质,所以Spring+SpringMVC+Mybatis这套S...

yongh701 ⋅ 2017/11/18 ⋅ 0

MyBatis系列目录--7. Mybatis与Spring最佳整合

转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662 1. 整合思路 (1) SqlSessionFactory由Spring作为单例管理 (2) spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSe...

付磊-起扬 ⋅ 2015/09/03 ⋅ 0

搭建Spring + SpringMVC + Mybatis框架之三(整合Spring、Mybatis和Spring MVC)

目录 整合Spring和SpringMVC 整合Spring和SpringMVC 之前已经整合了spring和mybatis,现在在此基础上整合SSM。 项目目录: 思路:SpringMVC的配置文件独立,然后在web.xml中配置整合。 (1)...

张辉原 ⋅ 2017/06/15 ⋅ 0

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)【转】

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程...

如何让他和 ⋅ 2016/10/11 ⋅ 1

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)【转】

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程...

梵蒂冈考虑过 ⋅ 2016/09/26 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部