mybatis - resultMap
resultMap有比较强大的自动映射,下面是摘自mybatis中文官网的的片段:
当自动映射查询结果时,MyBatis会获取sql返回的列名并在java类中查找相同名字的属性(忽略大小写)。 这意味着如果Mybatis发现了ID列和id属性,Mybatis会将ID的值赋给id。
通常数据库列使用大写单词命名,单词间用下划线分隔;而java属性一般遵循驼峰命名法。 为了在这两种命名方式之间启用自动映射,需要将 mapUnderscoreToCamelCase设置为true。
自动映射甚至在特定的result map下也能工作。在这种情况下,对于每一个result map,所有的ResultSet提供的列, 如果没有被手工映射,则将被自动映射。自动映射处理完毕后手工映射才会被处理。
下面在hello mybatis基础上,加入resultMap
1、PersonMapper.xml中加入resultMap,加一个select语句:select * from person
resultMap没做手动映射,所以按上面说的,mybatis会做自动映射
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="model.PersonMapper">
<select id="queryPersonById" parameterType="int" resultType="Person"
useCache="false">
<![CDATA[
select * from person where id = #{id}
]]>
</select> <resultMap id="personListMap" type="Person">
</resultMap>
<select id="queryPerson" resultMap="personListMap">
select * from person
</select>
</mapper>
2、Person.java加个toString方法
@Override
public String toString(){
return id + " : " +
name + " : " +
passWord + " : " +
sex + " : " +
email;
}
3、PersonTest.java的main方法中加入下面语句
List<Person> personList = session.selectList("model.PersonMapper.queryPerson");
for (Person p : personList){
System.out.println(p.toString());
}
4、运行测试方法,即可打印出person表里的所有记录
1 : danny2 : pwd : m : danny.yao@13.com
2 : danny2 : pwd : m : danny.yao@13.com
3 : danny1 : pwd : m : danny.yao@13.com
4 : danny2 : pwd : m : danny.yao@13.com
5 : danny3 : pwd : m : danny.yao@13.com
6 : danny4 : pwd : m : danny.yao@13.com
7 : danny5 : pwd : m : danny.yao@13.com
8 : danny6 : pwd : m : danny.yao@13.com
9 : danny7 : pwd : m : danny.yao@13.com
10 : danny8 : pwd : m : danny.yao@13.com
11 : danny9 : pwd : m : danny.yao@13.com
12 : danny10 : pwd : m : danny.yao@13.com
mybatis - resultMap的更多相关文章
- mybatis resultmap标签type属性什么意思
mybatis resultmap标签type属性什么意思? :就表示被转换的对象啊,被转换成object的类型啊 <resultMap id="BaseResultMap" ...
- mybatis resultMap映射学习笔记
这几天,百度mybatis突然看不到官网了,不知道百度怎么整的.特此贴出mybatis中文官网: http://www.mybatis.org/mybatis-3/zh/index.html 一个学习 ...
- Mybatis resultMap空值映射问题解决
Mybatis在使用resultMap来映射查询结果中的列,如果查询结果中包含空值的列(不是null),则Mybatis在映射的时候,不会映射这个字段,例如 查询 name,sex,age,数据库中的 ...
- mybatis ResultMap详解
前言 MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而res ...
- 解决:oracle+myBatis ResultMap 类型为 map 时返回结果中存在 timestamp 时使用 jackson 转 json 报错
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" ,然后使用 jackson @ResponseBody 返 ...
- mybatis resultMap 映射配置
现有数据库表: CREATE TABLE `dept_p` ( `DEPT_ID` ) NOT NULL, `DEPT_NAME` ) DEFAULT NULL, `PARENT_ID` ) DEFA ...
- [Mybatis]resultMap的使用总结
resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中. resultMap包含的元素的相关属性解释如下: <!--column不 ...
- Mybatis ResultMap(2)
SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: ...
- Mybatis resultMap空值映射问题
参考博客:https://www.oschina.net/question/1032714_224673 http://stackoverflow.com/questions/22852383/how ...
随机推荐
- requests高级用法
会话对象 当你向同一主机发送多个请求时,session会重用底层的tcp连接,从而提升性能,同时session也会为所有请求保持 cookie. # _*_ coding: utf-8 _*_ imp ...
- C#连接操作mysql实例
第三方组件:Mysql.Data.dll说明:去官方网站下载Mysql.Data.dll,然后在项目中添加该组件的引用,在代码页里输入using Mysql.Data.MysqlClient,我们就可 ...
- 自己编写的一个有关安卓应用开发培训PPT
这个是我自己编写的一个有关安卓应用开发培训PPT,适合新手. 在这里下载PPT
- IIS7下使用4.0框架集成模式URLRewriter重写中文URL乱码问题
解决方法: 1 url中中文先通过Server.UrlEncode编码 2 修改网站编码 3.更改URLRewriter.net中源码 找到RewriterEngine类中 private strin ...
- 关于Maven的一些记录
Eclipse-Mars4.5自带Maven插件,自己重新下载之后将不兼容. 可以在图中位置设置jar包路径. 可以在Eclipse新建Dynamic Web Project项目,然后在项目上右键=& ...
- 营业额统计(SBT)
营业额统计(SBT) #include<cstdio> #include<cstring> #include<string> #include<cstdlib ...
- ruby 生成有条件限制的随机数
#conding:utf-8 #生成只有数字的随机码可控制长度def random_int(len) newpass = "" 1.upto(len){ |i| newpass & ...
- STL中list和vector在添加元素时push_back会调用拷贝构造函数
#include <iostream> #include <list> #include <vector> #include <cstring> usi ...
- java 事件监听 - 键盘
java 事件监听 - 键盘 //事件监听 //键盘事件监听,写了一个小案例,按上下左右,改变圆形的位置,圆形可以移动 import java.awt.*; import javax.swing.*; ...
- 改写jquery.validate.unobtrusive.js实现气泡提示mvc错误
个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblogs.com/wifi/articles/2918950.html当中的第一种写法. 对于 ...