文档章节

springmvc - SqlSessionFactoryBean

lemos
 lemos
发布于 2016/11/18 09:49
字数 521
阅读 55
收藏 1

一、SqlSessionFactoryBean

mybatis-spring 官网

在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来替代:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
</bean>

注意:

实际上在Spring中,SqlSessionFactoryBean 并不是真正的session工厂,这其中经历了

SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
SqlSessionFactory sessionFactory = factoryBean.getObject();

这样的py交易。最后产生的sessionFactory 对象将以SqlSessionFactory为名存储。

至于,在一般的 MyBatis-Spring用法中,session工厂将会被注入到 MapperFactoryBean或其它扩展了SqlSessionDaoSupport DAO中。

二、属性

  • 必须属性
    SqlSessionFactory 有一个单独的必须属性,就是 JDBC 的 DataSource
  • 通用属性
    configLocation,它是用来指定 MyBatis 的 XML 配置文件路径的。Mybatis 配置文件中通常刨包括 <settings> 或<typeAliases>的部分。
  • 建议属性
    当MyBatis 映射器 XML 文件在和映射器类不在同一路径下,有两种解决方法。第一是手动在 MyBatis 的 XML 配 置文件中使用<mappers>部分来指定类路径。第二是使用工厂 bean 的 mapperLocations 属 性。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
    <!-- 自动扫描mapper.xml文件 -->
    <!-- 不要使用第一种方式,这是错误的。-->
    <!--<property name="mapperLocations" value="classpath*:club.lemos.ssm.mapper/*.xml"></property>-->
    <property name="mapperLocations" value="classpath*:club/lemos/ssm/mapper/*.xml"></property>
</bean>

mapperLocations 的值可以包含 Ant 样式来加载一个目录中所有文件, 或者从基路径下 递归搜索所有路径。

  • 其它属性
    • 在容器环境管理事务中,一个可能需要的属性是 transactionFactoryClass
    • 从1.3.0版本, 增加了configuration 属性.它能够在没有mybatisConfig.xml文件的情况下,对其属性进行配置。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configuration">
    <bean class="org.apache.ibatis.session.Configuration">
      <property name="mapUnderscoreToCamelCase" value="true"/>
    </bean>
  </property>
</bean>

 

注意:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="mapperLocations" value="classpath*:com/taotao/mapping/*.xml"/>
    <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
</bean>

这个地方一定要加classpath:虽然不加可能也能访问到。但是对于某些开发情况下还是会报错。不要使用classpath*,

因为classpath* 是在不同jar包中查找多个文件。比如*.xml。

本文转载自:http://blog.csdn.net/qq_34232804/article/details/53142407

共有 人打赏支持
lemos
粉丝 6
博文 177
码字总数 86701
作品 0
芜湖
后端工程师
spring中的mybatis(1)

开门见山 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="cl......

hyssop
2015/10/29
0
0
mybatis入门教程(八)------mybatis与spring集成

Mybatis与Spring集成开发 前期准备 mybatis与Spring集成,那么就需要spring对应的jar包 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><vers......

残风vs逝梦
2014/06/10
0
1
Springboot 中 Mybatis 的使用

官方文档: Mybatis开发团队为Spring Boot 提供了 MyBatis-Spring-Boot-Starter 方便使用。 要使用MyBatis-Spring-Boot-Starter模块,只需要在类路径中包含 mybatis-spring-boot-autoconfig...

不开心时不要学习
01/19
0
0
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、Mybat......

如何让他和
2016/09/24
30
1
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、Mybat......

梵蒂冈考虑过
2016/09/23
9
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
10分钟前
0
0
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
20分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
21分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
29分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部