mybatis-spring 项目简介

mybatis-spring 主要是为了解决 spring3.0 中支持 mybatis3.0

1 mybatis-spring 主要包含以下几个部分

  • 数据源
  • SqlSessionFactory
  • SqlSessionTemplate
  • Mapper
  • 事务处理

在mybatis中构建 SqlSessionFactory 对象,让它来产生 SqlSession, 在 mybatis-spring 项目中 SqlSession 是通过SqlSessionTemplate 来实现的,它提供了对SqlSession 的封装。

所以通过 SqlSessionTemplate 可以得到 Mapper。

2 构建 SqlSessionFactory ,它的作用是生成 SqlSession 。一般地,只需配置两个参数 1)数据源 2)mybatis 配置文件路径

3 配置 SqlSessionTemplate ,是一个模板类,通过调用 SqlSession 来完成工作,所以在 mybatis-spring 项目中,它是一个核心类。

构建方法有两种

1)只有一个参数 SqlSessionFactory

2)两个参数 一个是 SqlSessionFactory 另一个是执行器类型。

方法一,代码如下

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

方法二,两个参数

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
        <constructor-arg index="1" value="BATCH"/>
    </bean>

ExecutorType 的取值范围是:SIMPLE/REUSE/BATCH

如果同时设置了SqlSessionFactory 和 SqlSessionTemplate ,系统会使 SqlSessionTemplate 覆盖掉 SqlSessionFactory 。

4 配置 Mapper ,大部分场景中不建议使用 SqlSessionFactory 和 SqlSessionTemplate。而采用Mapper 接口编程的方式。关键类:MapperFactoryBean

在 mybatis 中,Mapper只是一个接口,而不是一个实现类。它是由 mybatis 通过动态代理的形式生成代理对象去运行,spring 没有办法生成实现类。

mybatis-spring 提供了 MapperFactoryBean 作为中介,可以配置他来获得我们需要的 Mapper。配置 MapperFactoryBean 有3个参数 MapperInterface,SqlSessionFactory,SqlSessionTemplate

  • MapperInterface,用来定制接口,当我们的接口继承了配置的接口,那么 Mybatis 就认为他是一个Mapper
  • SqlSessionFactory,当 SqlSessionTemplate 没有配置的时候,mybatis-spring 才会去设置它
  • SqlSessionTemplate,当被设置的时候,SqlSessionFactory 失效。

4.2 使用扫描的方式配置Mapper,关键类:MapperScannerConfigurer,他的可配属性

  • basePackage,spring自动扫描的包,会自动扫描子包
  • annotationClass,表示类只有被这个注解标注才进行扫描
  • sqlSessionFactoryBeanName,指定spring 中定义 sqlSessionFactory bean名称。如果被定义,sqlSessionFactory 将不起作用。
  • sqlSessionTemplateBeanName,指定spring 中定义 sqlSessionTemplate bean名称。如果被定义,sqlSessionFactoryBeanName 将不起作用。
  • markerInterface,指定实现了什么接口就认为是 Mapper。

5 配置事务,spring 和 mybatis结合后,是使用Spring AOP 去管理事务的。配置也很简单。

<!-- 支持注解 -->
<context:annotation-config/>

<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

<!-- 声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
时间: 2024-11-04 20:49:27

mybatis-spring 项目简介的相关文章

一、MyBatis简介与配置MyBatis+Spring+MySql

1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型.Map 接口和POJO 到数据库记录.相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现.需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包).mybatis-spr

MyBatis简介与配置MyBatis+Spring+MySql

1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型.Map 接口和POJO 到数据库记录.相对Hibernate和Apache OJB等"一站式"ORM解决方案而言,Mybatis 是一种"半自动化"的ORM实现.需要使用的Jar包:mybatis-3.0.2.jar(mybatis核

MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql

1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型.Map 接口和POJO 到数据库记录.相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现.需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包).mybatis-spr

Spring+mybatis测试项目总结

1.项目目的a.通过Spring+Mybatis实现通过web访问达成mySql的操作b.理解Spring+Mybatis的配置c.理解maven对项目的管理2.配置文件a.采用maven约定结构,src/main/java.src/main/resources.src/main/test b.基本springMVC+Mybatis需要用到的jar spring-web.spring-webmvc.spring-core.spring-beans.spring-context.spring-co

springmvc+spring+mybatis+maven项目构建

1.首先在myeclipse10中安装maven的插件,将插件放入D:\Program Files (x86)\myEclipse10\MyEclipse Blue Edition 10\dropins\maven中, 2. 新建文件:maven.link填入如下内容:path=D:/Program Files (x86)/myEclipse10/MyEclipse Blue Edition 10/dropins/maven 3.重启myeclipse插件安装成功. 4.在myeclipse10

springmvc+spring+mybatis整合项目

开发环境: System:Windows server 2003 WebBrowser:IE6+.Firefox3+ JavaEE Server:tomcat5. IDE:eclipse.MyEclipse 6.5 Database:MySQL 开发依赖库: JavaEE5.Spring 3.0.5.Mybatis 3.0.2.myBatis-spring-1.0.0-rc2 参考百度文库:http://wenku.baidu.com/view/34559702a6c30c2259019e4e.

jersey + spring + mybatis + redis项目搭建

最近在公司做项目,想采用最近比较热的restful来做,思前想后采用了jersey + spring + mybatis + redis来搭建项目,此处留下详细的配置,方便以后查阅,jersey采用2.13版本,与1.x版本差别比较大,主要是容器的差别!spring采用3.2的版本! 1.采用maven搭建项目 pom如下 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncodin

spring boot+mybatis+quartz项目的搭建完整版

1. 利用spring boot提供的工具(http://start.spring.io/)自动生成一个标准的spring boot项目架构 2. 因为这里我们是搭建spring boot+mybatis+quartz架构,故在pom.xml文件中配置相关依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo

Vue + Spring Boot 项目实战(一):项目简介 &#619178;

原文: http://blog.gqylpy.com/gqy/489 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

快速构建一个Spring Boot+MyBatis的项目IDEA(附源码下载)

如何快速构建一个Spring Boot的项目 工具 idea JDK版本 1.8 Spring Boot 版本 1.5.9 环境搭建实现:最基础前端可以访问到数据库内的内容 开始 IDEA 内部新建一个项目,项目类型选择Spring Initializr,Project SDK选择适合你当前环境的版本,这里我选择的是1.8(Spring Boot 2.0以上的版本,JDK选择请选择1.8即以上版本),构建服务选择默认就好,点击Next 填写Group和Artifact(此处我使用的是默认,请根据