mybatis 映射器
1 映射器 Mapper 是由java接口和 XML 文件共同组成。它的作用如下
1)定义参数类型
2)描述缓存
3)描述 SQL 语句
4)定义查询结果和POJO的映射关系
2 SqlSessionFactoryBuilder 主要作用是用来生成 SqlSessionFactory,生成以后就不用了,所以它的生命周期只存在于方法局部。
3 SqlSessionFactory 的作用是创建SqlSession,而 SqlSession 就是一个会话,相当于是JDBC的 Connection 对象。每次应用访问数据库,就需要通过 SqlSessionFactory 创建SqlSession ,所以 SqlSessionFactory 应该在整个生命周期中。每个数据库只对应一个 SqlSessionFactory 。
4 SqlSession 是一个会话,相当于 JDBC 的 Connection 对象,它的生命周期应该是请求数据库处理事务的过程中。它是一个线程不安全的对象,当操作数据库时需要注意其隔离级别、数据库锁等高级特性。
此外每次创建都需要及时关闭它。
5 Mapper 是一个接口,而没有任何实现类,它的作用是发送SQL语句,然后返回我们的结果;或者执行SQL语句修改数据库中数据,因此他应该在一个 SqlSession 事务方法之内,是一个方法级别的东西。
它的最大范围和 SqlSession 是相同的。
6 typeHandler 常用的配置为 java 类型、jdbc类型。typeHandler 的作用就是将参数从 javaType 转化为 jdbcType,或者从数据库取出结果把 jdbcType 转换成 javaType 。
7 引入映射器的方法
7.1)使用文件路径引入映射器,
<mappers>
<mapper resource=""></mapper>
</mappers>
7.2)使用包名引入映射器,
<mappers>
<package name=""/>
</mappers>
7.3)使用扫描方式引入
<!-- mybatis的Mapper的扫描器 MapperScannerConfigure 会自动扫描
mapper包下的所有接口自动生成代理对象: 对象名字为Mapper接口类名(首字母小写)
-->
<bean id="mapperScanConfig" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.huitong.dao"/>
</bean>
mybatis 映射器的更多相关文章
- MyBatis映射器(一)--多参数传递方式
在mybatis映射器的接口中,一般在查询时需要传递一些参数作为查询条件,有时候是一个,有时候是多个.当只有一个参数时,我们只要在sql中使用接口中的参数名称即可,但是如果是多个呢,就不能直接用参数名 ...
- MyBatis映射器(转载)
什么是MyBatis映射器? MyBatis框架包括两种类型的XML文件,一类是配置文件,即mybatis-config.xml,另外一类是映射文件,例如XXXMapper.xml等.在MyBatis ...
- MyBatis映射器元素
映射器是MyBatis最强大的工具,也是我们使用MyBatis时用的最多的工具,映射器中主要有增删改查四大元素,来满足不同场景的需要: 下面是主要元素的介绍: select:查询语句 ...
- mybatis映射器配置细则
前面三篇博客我们已经多次涉及到映射器的使用了,增删查基本上都用过一遍了,但是之前我们只是介绍了基本用法,实际上mybatis中映射器可以配置的地方还是非常多,今天我们就先来看看映射器还有哪些需要配置的 ...
- mybatis 映射器(mappers) 配置说明 加载映射文件方式
映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了.但是首先我们需要告诉 MyBatis 到哪里去找到这些语句. Java 在自动查找这 ...
- Mybatis映射器接口代理对象的方式 运行过程
查询一张表的所有数据. 环境: 使用工具IntelliJ IDEA 2018.2版本. 创建Maven工程不用骨架 1.pom.xml <?xml version="1.0" ...
- Mybatis 映射器接口实现类的方式 运行过程debug分析
查询一张表的所有数据. 环境: 使用工具IntelliJ IDEA 2018.2版本. 创建Maven工程不用骨架 <?xml version="1.0" encoding= ...
- 【长文】Spring学习笔记(七):Mybatis映射器+动态SQL
1 概述 本文主要讲述了如何使用MyBatis中的映射器以及动态SQL的配置. 2 MyBatis配置文件概览 MyBatis配置文件主要属性如下: <settings>:相关设置,键值对 ...
- Mybatis映射器(一)
XML查询参数: parameterType:可以给出类别名,全名等. resultType:查询结果,可以为 int,float,map等不可以与resultMap同时使用. resultMap: ...
随机推荐
- mmap函数使用
UNIX网络编程第二卷进程间通信对mmap函数进行了说明.该函数主要用途有三个:1.将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能:2. ...
- 理解JavaScript中的事件流
原文地址:http://my.oschina.net/sevenhdu/blog/332014 目录[-] 事件冒泡 事件捕获 DOM事件流 当浏览器发展到第四代时(IE4和Netscape Comm ...
- 【ajax 提交表单】多种方式的注意事项 ,serialize()的使用
在业务中,可能因为表单内容过于庞大,字段过于繁杂,如果人为去拼接的话 ,需要耗费大量的时间和精力,与此同时,代码看上去也是冗余不堪. 所以,提交表单的时候如果能整个表单数据整体提交,那是非常开心的事情 ...
- 负载均衡---在window与linux下配置nginx
最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,sq ...
- python的单元测试框架
1.unittest是Python内置的标准类库.它的API跟Java的JUnit..net的NUnit,C++的CppUnit很相似. 通过继承unittest.TestCase来创建一个测试用 ...
- QT creator出现 no executable specified时解决办法
1. 本人是在linux/ubutun中使用QT creator,一次编译程序的时候出现了“no executable specified”的错误而无法运行程序.解决办法: 在用QT crea ...
- Proxmark3命令帮助
Proxmark3命令帮助 目录 [隐藏] 1 使用技巧 2 help 主帮助命令(基于r830以及以下版本) 3 hw 硬件检测相关命令 4 data 图形窗口/缓冲区数据操作等命令 5 ...
- 手势 触摸【缩放】GestureDetector MotionEvent 案例
GestureDetector和ScaleGestureDetector示例 /** * 演示[单点触摸手势识别器] * 演示[缩放手势识别器]最简单的使用 * @author 白乾涛 */ ...
- Android -- Service的开启关闭与生命周期
Service是Android 系统中的四大组件之一,是在一段不定的时间运行在后台,不和用户交互应用组件. service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity ...
- Android 中的长度单位具体解释
一.介绍一下 dp 和 sp. dp 也就是 dip.这个和 sp 基本类似.假设设置表示长度.高度等属性时能够使用 dp 或 sp.但假设设置字体,须要使用 sp. dp 是与密度无关,sp除了与密 ...