Mybatis学习(三)————— 映射文件详解
前面说了全局配置文件中内容的详解,大家应该清楚了,现在来说说这映射文件,这章就对输入映射、输出映射、动态sql这几个知识点进行说明,其中高级映射(一对一,一对多,多对多映射)在下一章进行说明。
一、输入映射
输入映射:配置statement中输入参数的类型。有四种
1.1、传递简单类型,八大基本类型,比如int类型
findUserById:根据id进行查询对应user,那么传入的就应该是int类型的值。所以使用别名int来映射传入的值

1.2、传递pojo(代表正常的对象,比如user的javabean对象)
insertUser:就是传递的User这个对象。
注意:在使用pojo之后,#{xxx}。 xxx表示pojo对象中的属性名。
1.3、传递包装pojo(其中放置的为集合,对象引用等)
什么是包装pojo?比如

queryUserList
注意:user.username这个属性的获取,因为UserQueryVO是一个包装pojo,其中有user的引用。而user中又有username的属性,那么这样一层层取过来用即可。
1.4、传递hashmap
这个也很简单,理解了前面的,这个不难。

注意:hashmap使用的是别名,mybatis中内置了。
二、输出映射
讲解两个东西。resultType和resultMap

2.1、resultType
这个没什么好讲解的,也就是查询出来的结果的列名需要对应我们编写的输出映射类型中的属性名,如果不匹配,则不能完成映射,那么查询出来的结果也不能如愿的放入对应的对象中去。这个很正常,我们都知道。
2.2、resultMap
查询出来的结果的列名不用对应我们编写的输出映射类型中的属性名,也能够完成映射。此时就需要resultMap来做这个事情了,使用一个案例来说明
案例1.:查询的sql语句使用了别名,如何将其与对应的对象的属性进行映射?使用resultMap来完成

分析:看懂了吗?其实就是通过resultMap这个中介,来帮我们完成映射,本来是不能够成功映射的,因为属性名和列名不同,但是中间有了resultMap帮我们完成这个映射。就可以达到这种效果了,不过使用resultMap是比resultType更为繁琐一点,但是也有其优点,在进行高级映射时,更多的是使用resultMap,这里只是先体验一下resutlMap的基本用法,在下一章讲解高级映射时,会深化讲解resultMap的用法。
三、动态sql
这是个很有趣的东西,个人感觉挺好的。
通过Mybatis提供的各种动态标签实现动态拼接sql,使得mapper映射文件在编写SQL时更加灵活,方便。常用动态SQL标签有:if、where、foreach
3.1、if和where
if标签用来判断
里面有test属性,可以输入判断语句
where标签,处理条件是否输入正确。如果没有条件,就把自己干掉,
具体使用代码来看看

3.2、foreach

注意:foreach中的open和close这两个属性,open:在遍历之前将创建该字符串,一直遍历,遍历结束后,将close中的内容拼接上去。
3.3、sql片段
通俗点讲,就是对动态sql的重用,将写好的动态sql提取出来,然后在需要的地方进行调用。
Sql片段要先定义后使用

四、总结
这章节也很简单,具体又认识了一下映射文件中的一些配置,最主要是接触到了两个新的东西,输出映射的resultMap和动态sql。其中resultMap并没有讲全,只是介绍了一下他的作用及最简单的用法,具体的会在下一章节讲解到。也就是高级映射。
Mybatis学习(三)————— 映射文件详解的更多相关文章
- Mybatis(三) 映射文件详解
前面说了全局配置文件中内容的详解,大家应该清楚了,现在来说说这映射文件,这章就对输入映射.输出映射.动态sql这几个知识点进行说明,其中高级映射(一对一,一对多,多对多映射)在下一章进行说明. 一.输 ...
- Mybatis SQL映射文件详解
Mybatis SQL映射文件详解 mybatis除了有全局配置文件,还有映射文件,在映射文件中可以编写以下的顶级元素标签: cache – 该命名空间的缓存配置. cache-ref – 引用其它命 ...
- MyBatis 映射文件详解(六)
MyBatis 配置文件类型 MyBatis配置文件有两种类型,如下: 全局配置文件(如 mybatis-config.xml) Mapper XML 映射文件(如 UserMapper.xml) 上 ...
- Hibernate配置文件和映射文件详解
Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...
- MyBatis的SQL语句映射文件详解
SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用 < ...
- MyBatis 映射文件详解
1. MyBatis 映射文件之<select>标签 <select>用来定义查询操作; "id": 唯一标识符,需要和接口中的方法名一致; paramet ...
- Mybatis的配置文件和映射文件详解
一.Mybatis的全局配置文件 1.SqlMapConfig.xml是mybatis的全局配置文件,配置内容如下: properties(属性) settings(全局配置参数) typeAlias ...
- Mybatis基础学习(三)—映射文件
一.输入映射 1.parameterType 指定输入参数的Java类,可以使用别名或者类的全限定名.它也可以接受基本数据类型.POJO对象.HashMap. (1)基本数据类型 (2 ...
- MyBatis之Mapper XML 文件详解(一)
MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% ...
随机推荐
- 组件内守卫beforeRouteEnter和beforeRouteLeave
beforeRouteEnter用法和其他守卫差不多. 有个注意的地方就是beforeRouteEnter不能用this获取组件内收据. 在next()方法内存入vm这个参数,获取组件内数据. bef ...
- VS2015环境下生成和调用DLL动态链接库
一.生成动态链接库: 1.打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_ge ...
- Paper | 多任务学习的鼻祖
目录 1. MTL的定义 2. MTL的机制 2.1. Representation Bias 2.2. Uncorrelated Tasks May Help? 3. MTL的用途 3.1. Usi ...
- JAVA课程设计---学生基本信息管理系统
1.团队课程设计博客链接 http://www.cnblogs.com/zyjjj/p/7061880.html 2.个人负责模块或任务说明 函数 功能说明 Search 查找学生信息,分为两种查找方 ...
- Metasploit漏洞的利用
- .Net异步实例讲解
说起异步,Thread,Task,async/await,IAsyncResult 必须掌握 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行:对于比较耗时的操作( ...
- 注册MongoDB为系统服务(二)
注册MongoDB为系统服务(二)http://blog.csdn.net/qq_35685189/article/details/52304245
- Vue route部分简单高级用法
一改变页面title的值 在开发时常常需要在切换到不同页面时改变浏览器的title值,那么我们就可以在定义路由的时候通过配置 meta 属性 来改变title值. import Vue from ...
- verilog HDL-参数型数据对像 与‘define
参数新数据对象是用来定义常量的,它可以提升verilog hdl代码的可读性和维护性. verilog hdl支持参数有两种,普通参数和局部参数.普通参数在模块例化时可以从新赋值,局部参数在模块例化时 ...
- [纪录片] 鸟瞰中国 ——China from Above
上周末我看了一部纪录片<鸟瞰中国>,觉得特别有意思,想要分享给你. 制作背景 <鸟瞰中国>是由中国五洲传播中心与美国国家地理频道联合拍摄的纪录片,由KNNY PNG.KLAUS ...