MyBatis-Spring配置简单了解

[SqlSessionFactoryBean](https://mybatis.github.io/spring/zh/factorybean.html)配置

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

示例

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mapperLocations"><array><value>classpath:mapper/*.xml</value></array></property><property name="typeAliasesPackage" value="com.isea533.mybatis.model"/><property name="plugins"><array><bean class="com.github.pagehelper.PageHelper"><property name="properties"><value>dialect=hsqldbreasonable=true</value></property></bean><bean class="com.github.abel533.mapperhelper.MapperInterceptor"><property name="properties"><value>mappers=com.github.abel533.mapper.MapperIDENTITY=MYSQLnotEmpty=true</value></property></bean></array></property>
</bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

dataSource属性

该属性必须配置,多数据源时会有多个dataSource,同时也需要配置多个sqlSessionFactory来对应。

mapperLocations属性

配置该属性后,sqlSessionFactory会自动扫描该路径下的所有文件并解析。

该路径支持多个,可以用,;\t\n进行分割。

每一个路径都可以用直接的包路径,或者Ant风格的表达式。

configLocation属性

上面例子中并没有使用该属性,当SqlSessionFactoryBean提供的配置不能满足使用时,你可以使用mybatis-config.xml配置文件配置其他属性,然后通过configLocation属性指定该配置的路径,SqlSessionFactoryBean会使用该配置文件创建Configuration

typeAliasesPackage属性

该属性可以给包中的类注册别名,注册后可以直接使用类名,而不用使用全限定的类名(就是不用包含包名)。

该属性可以配置多个,可以用,;\t\n进行分割。但是不支持Ant风格的路径。

plugins属性

该属性可以配置MyBatis的拦截器,拦截器的配置顺序会影响拦截器的执行顺序。

从上往下的拦截器,实际的执行顺序是这样,第一个拦截器会最后执行,最后一个会首先执行。

然后出拦截器的顺序和配置的顺序一致,第一个最先返回,最后一个最后返回。

就以上面的配置为例,一个简单的执行顺序图如下:

这些拦截器执行的顺序都是环绕型,不要简单理解为简单的顺序执行。

从配置顺序来看,第一个配置的在最里面,后面的依次环绕上一个拦截器。

MapperScannerConfigurer 配置

为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态代理的实现:MapperFactoryBean。这个类 可以让你直接注入数据映射器接口到你的 service 层 bean 中。当使用映射器时,你仅仅如调 用你的 DAO 一样调用它们就可以了,但是你不需要编写任何 DAO 实现的代码,因为 MyBatis-Spring 将会为你创建代理。

示例

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.isea533.mybatis.mapper"/><property name="annotationClass" value="XXX"/><property name="sqlSessionFactoryBeanName" ref="sqlSessionFactory"/>
</bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

一般用过的最多也就是这3个属性,实际情况下最常用的只有basePackage

basePackage属性

basePackage可以写多个,可以用,;\t\n进行分割。

每一个路径都可以用直接的包路径,或者Ant风格的表达式。

annotationClass属性

该属性实际上就是起到一个过滤的作用,如果设置了该属性,那么MyBatis的接口只有包含该注解,才会被扫描进去。

sqlSessionFactoryBeanName属性

这个属性一般都用不到,只有当你配置多数据源的时候,这是会有多个sqlSessionFactory,你就需要通过该属性来指定哪一个sqlSessionFactory(值为SqlSessionFactoryBean <bean>配置中的id属性)。

Ant通配符

  • ? 匹配任何单字符
  • * 匹配0或者任意数量的字符
  • ** 匹配0或者更多的目录

举例

  • /project/*.a 匹配项目根路径下所有在project路径下的.a文件
  • /project/p?ttern 匹配项目根路径下 /project/pattern 和 /app/pXttern,但是不包括/app/pttern
  • /**/example 匹配项目根路径下 /project/example, /project/foow/example, 和 /example
  • /project/**/dir/file.* 匹配项目根路径下/project/dir/file.jsp, /project/foow/dir/file.html
  • /**/*.jsp 匹配项目根路径下任何的.jsp 文件

最长匹配原则(has more characters)

URL请求/project/dir/file.jsp,现在存在两个路径匹配模式/**/*.jsp和/project/dir/*.jsp,那么会根据模式/project/dir/*.jsp来匹配

from: http://blog.csdn.net/isea533/article/details/45640319

MyBatis-Spring配置简单了解相关推荐

  1. Maven+Mybatis+Spring配置

    第一步:配置pom.xml依赖 1.配置slfj+logback:  Java代码   <!-- Logging -->   <dependency>   <groupI ...

  2. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

    1.项目开发背景和意义 随着科学技术的快速发展和不断提高,尤其是计算机科学技术的日渐普及,其功能的强大以及运行速度已经被人们深刻地了解.近几年来高校的办学模式多元化和学校规模的扩大,为了实现对学生信息 ...

  3. hadoop mysql mybatis_MyBatis简介与配置MyBatis+Spring+MySql

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本 ...

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

    引用:http://blog.csdn.net/milife2012/article/details/7253647 分类: mybatis 2012-02-13 01:20 58人阅读 评论(0)收 ...

  5. spring整合mybatis(入门级简单教程3)--获取sqlSession对象

    引子:sqlSession对象在mybatis中的作用是不用说的了.比如我们可以用它来commit().rollback()以及执行我们的map代码.下面介绍获取sqlSession对象的两种方法: ...

  6. MyBatis简介与配置MyBatis+Spring+MySql

    一.MyBatis简介与配置MyBatis+Spring+MySql 原文出自:http://limingnihao.iteye.com/blog/781671 MyBatis学习 之 一.MyBat ...

  7. 搭建eclipse版的ssm+maven+tk.mybatis+redis及mybatis+spring多数据源配置集成的demo

    前言:我这里搭建好eclipse版的ssm+maven+tk.mybatis+redis及mybatis+spring多数据源配置集成的demo.新手快速上手直接看demo. 最后处提供完整高质量de ...

  8. Spring Boot入门系列(六)Spring Boot如何使用Mybatis XML 配置版【附详细步骤】

    前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...

  9. spring配置主库从库_springboot集成mybatis配置主从复制双库实现读写分离

    一般情况下网站对数据库的读要比写多多了,所以当数据量大了的时候,使用读写分离是很有必要的 spring提供了数据源路由的类,正好拿它来实现一下 创建项目 简单的springboot项目,依赖有myba ...

  10. 基于注解配置简单的SpringMVC+Mybatis

    SpringMVC+Mybatis框架配置过好几次了,现在貌似终于对这些东西有些了解,自己草草的总结一下,也是再学习的一个过程. 首先,准备jar包,这个就不在赘述了. 然后就来肉戏了,以下只是我的理 ...

最新文章

  1. 一文讲清,MySQL主从架构
  2. js获取iframe中的元素_在 HTML 中包含资源的新思路
  3. spring-amqp整合rabbitmq消费者配置和代码
  4. 保25ms争10ms——Zenlayer如何保持出海业务的超低延时
  5. 如何将前端数据保存到文件
  6. php ftp 创建文件夹失败,PHP使用FTP函数创建目录
  7. C++中字符数组和字符串string
  8. 第5堂:看到词句就会读-上
  9. [SAP ABAP开发技术总结]ABAP调优——代码优化
  10. high performance web sites 阅读小记
  11. java封装json串示例_Java JSON示例
  12. 第五话 Asp.Net MVC 3.0【MVC实战项目の一】
  13. 12. No More MVC
  14. 181220每日一句
  15. LoadRunner教程(15)-LoadRunner 初识Analysis
  16. MySQL视图创建与管理(实验五)
  17. 关于 Android 的 OMA DRM 验证
  18. OSChina 周一乱弹 —— 把这个赚钱的办法写到刑法里
  19. 【原神】各角色Pixiv涩图统计(一). 最多的是谁? R18涩图谁最多?
  20. 利用电阻分压网络测量电池电压注意事项

热门文章

  1. 【行业报告】中国金融科技2017专题研究报告——易观智库
  2. 【MarkDown】:MarkDown编辑器
  3. linux下的time函数们
  4. 专访《Javascript设计模式与开发实践》作者曾探:爱编程 爱生活
  5. 每日一博 - Java序列化一二事儿
  6. JVM - 要上线了,JVM参数还没正儿八经的估算过咋办?
  7. Oracle查询锁表以及杀会话或系统进程来解除锁表操作
  8. 25 linux ndk 头文件_正点原子Linux第二十五章RTC实时时钟实验
  9. 江苏省二级python考试题库_python二级考试试题.doc
  10. 发布开源库的踩坑经历:jitpack.io