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: ...
随机推荐
- 关于npm run build 卡住不动的坑。。。
起因:最近开发个项目使用的vue,有些功能需要生产版本放服务器上测试,这就出问题了..卡住了,不动了,还不报错 这是在vscode的终端里面,试了git hash,试了cmd , 试了powershe ...
- dao层知识点总结
1.dao层要有connection 2.dao层进行分页,mysql limit关键字 3.dao层进行结果集转换为java bean 4.dao层queryforlist
- ABC定制视图导航控制器
ABCustomUINavigationController ABC定制视图导航控制器 Subclass of UINavigationController for overwriting ...
- Out of memory: Kill process 内存不足
服务直接被 killed,感觉特别奇怪.代码肯定是没有问题的,但为什么放到服务器上就出错了呢. 部署时报错如下: Failed to add the deployment content to the ...
- poj 1995 Raising Modulo Numbers 题解
Raising Modulo Numbers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 6347 Accepted: ...
- oracle汉字转拼音
CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); ...
- SQL Server基础知识三十三问 (1-7)
1. SQL Server运行在什么端口上? 可以被修改么? 答: 1433端口. 可以修改的, 在SQL Server Configuration Manager的SQL Server Networ ...
- boost.asio学习笔记一、linux下boost库的安装
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46761029 学习开源库第一步就是编译安装好库,然后执行成功一个 ...
- luigi操作hive表
关于luigi框架下查询hive表的操作 class JoinQuery(HiveQueryTask): date=luigi.DateParameter() def hiveconfs(self): ...
- MFC获得主窗体和父窗体指针
MFC编程中经常遇到子窗体向父窗体传递參数的情况,这就须要获得父窗体的指针. 例:主对话框CMyMainDlg通过buttonButtonA进入对话框CMyParentDlg.CMyParentDlg ...