MyBatis的XML文件(三)--结果集(ResultMap)--简单
来源:互联网 发布:js登录功能 编辑:程序博客网 时间:2024/05/16 08:09
Result Maps
ResultMap
元素是MyBatis中最重要最强大的元素,它就是让你远离90%的需要从结果集中取出数据的JDBC代码的那个东西,而且在一些情形下允许你做一些JDBC不支持的事情,事实上,编写相似于负载语句联合映射这些等同的代码,也许可以跨过上千行的代码,ResultMap
的设计 就是简单语句不需要明确的结果映射,而很多复杂语句确实需要描述它们的关系。
你已经看到简单映射语句的示例了,但没有明确的resultMap
比如:
<select id = "selectUsers" resultType="map"> SELECT id, username,hashedPassword FROM some_table WHERE id = #{id} </select>
这样一个语句简单作用于所有列被自动映射到HashMap的键上,这由resultType
属性指定,这在很多情况下是有用的,但是HashMap
不能很好描述一个领域模型,那样你的应用程序将会使用JavaBeans
或POJOS(Plain Old Java Objects,
普通Java对象)来作用领域模型,MyBatis对两者都支持,看看下面这个JavaBean:
package com.someapp.model; public class User { private int id; private String username; private String hashedPassword; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getHashedPassword() { return hashedPassword; } public void setHashedPassword(String hashedPassword) { this.hashedPassword = hashedPassword; } }
基于JavaBean的规范,上面这个类有3个属性:id,username和hashPassword,这些在select语句中会精确匹配到列名。
这样的一个JavaBean可以被映射到结果集,就像映射到HashMap
y一行简单。
<select id = "selectUsers" resultType = "com.someapp.model.User> SELECT id,username,hashedPassword FROM some_table WHERE id = #{id} </select>
要记住类型别名是你的伙伴,使用它们你可以不用输入类的全路径。比如:
<!-- In mybatis-config.xml file --> <typeAlias type="com.someapp.model.User" alias="User"/> <!-- In SQL Mapping XML file --> <select id="selectUsers" resultType="User"> select id, username, hashedPassword from some_table where id = #{id} </select>
这些情况下,MyBatis会在幕后自动创建一个ResultMap
基于属性名来映射列到javaBean的属性上,如果列名没有精确匹配,你可以在列名上使用select字句的别名(一个基本的SQL特性)来匹配标签。比如:
<select id = "selectUsers" resultType = "User"> SELECT user_id as "id", user_name as "username", hashed_password as "hashedPassword" FROM some_table WHERE id = #{id} </select>
ResultMap
最优秀的地方你已经了解了很多,但是你还没有真正的看到一个,这些简单的示例不需要比你看到的更多东西,只是出于示例的原因,让我们来看看最后一个示例中外部的resultMap
是什么样子的,这也是解决列名不匹配的另外一种方式。
<resultMap id = "userResultMap" type = "User"> <id property = "id" column = "user_id"/> <result property = "username" cloumn = "user_name" /> <result propety = "password" cloumn = "password" /> </resultMap>
引用它的语句使用resultMap
属性就行了(注意我们去掉了resultType属性)。比如:
<select id = "selectUsers" resultMap = "userResultMap"> SELECT user_id,user_name,hashed_passowrd FROM some_table WHERE id = #{id} </select>
如果世界总是这么简单就好了。
- MyBatis的XML文件(三)--结果集(ResultMap)--简单
- MyBatis结果集映射(ResultMap)
- mybatis的mapper.xml文件resultMap的关联association用法
- mybatis-查询(resultMap 自定义结果集)-13
- MyBatis 3.Mapper XML 文件(二) ResultMap
- MyBatis学习笔记(2)—— XML映射文件の结果集(Result Maps)中的简单结果映射
- [mybatis]ResultMap输出结果映射
- MyBatis引入外部文件的resultMap
- mybatis 因为没有设置resultMap id 引起的多结果集异常
- myBatis ibatis 查询多行结果集 resultMap 配置
- mybatis-映射器-resultMap结果集映射1
- mybatis执行任意sql,不配置resultMap,返回结果集
- Mybatis-04-结果集映射resultMap/动态SQL/关联查询
- MyBatis Mapper.xml配置 ResultMap
- MyBatis的xml配置的resultMap的特点
- mybatis系列-Mapper XML 文件(三)
- MyBatis之resultMap的作用和xml配置折腾
- MyBatis之resultMap的作用和xml配置折腾
- Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
- (16)2017.8.17-java基础中期考核复习(2)
- 后缀表达式转中缀表达式
- spring boot学习系列:spring boot的单元测试实战
- Codeforces Round #387 (Div. 2) C. Servers
- MyBatis的XML文件(三)--结果集(ResultMap)--简单
- AXURE RP8实战手册 网站和APP原型制作案例精粹pdf
- B1020. 月饼 (25)
- 使用virtualbox搭建Ubuntu虚拟机
- postgres9.5.7 wal日志归档和任意时间点恢复数据
- PHP下如何新加模块
- mysql源码学习笔记:基于binlog的recovery机制
- 已知有一组带小数的数值 存放在文件a.txt中,每个数值都用‘,’间隔,现请编程实现求文件src.txt文件中数值的平均值 并将记录到文件dst.txt中编程实现
- 计算机三级网络技术笔记(选择题)