[刘阳Java]_MyBatis_映射文件的resultMap标签入门_第4讲
<resultMap>:用于解决实体类中属性和表字段名不相同的问题
- id:表示当前<resultMap>标签的唯一标识
- result:定义表字段和实体类属性的对应关系
- property:记录实体类的属性
- column:记录表的字段名称
1.一般我们在配置实体类的时候习惯将实体类中属性名字和字段名称一样,不管在后期维护还是开发过程中可读性比较好。
<?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="com.gxa.mapper.TeamMapper"> <resultMap type="com.gxa.pojo.Team" id="MyUser">
<id column="user_id" property="userId"/>
<result column="user_name" property="user_name"/>
<result column="user_pass" property="user_pass"/>
<result column="user_type" property="user_type"/>
<result column="user_real_name" property="user_real_name"/>
</resultMap> <select id="getUser" resultMap="MyUser">
select * from team
</select> </mapper>
2.但是如果当属性名称和表中列名不一样,则<resultMap>标签就解决在映射中实体和表的关联问题
package com.gxa.pojo;
public class MyUser {
private int userId;
private String userName;
private String userPass;
private String userType;
private String userRealName;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
public String getUserRealName() {
return userRealName;
}
public void setUserRealName(String userRealName) {
this.userRealName = userRealName;
}
@Override
public String toString() {
return "userId = "+userId+" userName = "+userName+" userPass = "+userPass+" userType="+userType+" userRealName = "+userRealName+"";
}
}
表的字段名称如下,这样子出现和上面代码中实体类MyUser.java的属性名称和字段名称不一样
create table MyUser(
user_id int primary key,
user_name varchar(20),
user_pass varchar(10),
user_type varchar(1),
user_real_name varchar(20)
)
则我们在MyBatis中就需要利用<resultMap>来指定Java类中属性名称和字段名称的对应方式
<?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="com.gxa.mapper.TeamMapper"> <resultMap type="com.gxa.pojo.Team" id="MyUser">
<id column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<result column="user_pass" property="userPass"/>
<result column="user_type" property="userType"/>
<result column="user_real_name" property="userRealName"/>
</resultMap> <select id="getUser" resultMap="MyUser">
select * from team
</select> </mapper>
[刘阳Java]_MyBatis_映射文件的resultMap标签入门_第4讲的更多相关文章
- [刘阳Java]_MyBatis_映射文件的select标签入门_第3讲
1.Mybatis映射文件的<select>标签主要帮助我们完成SQL语句查询功能,<select>标签它包含了很多属性,下面简单对<select>标签的属性做一个 ...
- [刘阳Java]_MyBatis_映射文件的常用标签总结_第5讲
MyBatis中常用标签的总结,简单给出自己的总结 MyBatis映射文件中的标签使用介绍1.<select>:用于编写查询语句用的标签 id:表示当前<select>标签的唯 ...
- [刘阳Java]_MyBatis_实体关系映射_第8讲
MyBatis既然是一个ORM框架,则它也有像Hibernate那样的一对多,多对多,多对一的实体关系映射功能.下面我们就来介绍一下如何使用MyBatis的实体关系映射 1.MyBatis实体关系映射 ...
- [刘阳Java]_MyBatis_动态SQL标签用法_第7讲
1.MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 2.MyBatis中用于实现动态SQL的元素主要有 if choose(when,otherwi ...
- [刘阳Java]_MyBatis_注解基本用法_第10讲
MyBatis注解提出,可以说是非常好简化了MyBatis配置文件的使用.下面我们简单地来告诉大家如何使用MyBatis的注解 定义接口 package com.gxa.dao; import jav ...
- [刘阳Java]_MyBatis_常规标签的用法_第6讲
一般MyBatis最基本标签,或者说初学者上手最快的标签就是增删改查 1.<insert>标签,在MyBatis中完成数据添加操作 <insert id="addMyUse ...
- [刘阳Java]_MyBatis_其他方式来实现多表查询的操作_第9讲
MyBatis其他方式来实现多表查询的操作 利用Java中的集合框架(List,Map) 其中List存储多个查询返回的记录 Map查询返回字段,同时记录表中一条数据 <?xml version ...
- MyBatis学习(二)、SQL语句映射文件(1)resultMap
二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...
随机推荐
- ORA-12520:TNS:监听程序无法为请求的服务器类型找到可用的处理程序
连接数太多 关掉没用的 plsql
- Tomcat回收连接
最近公司一个JDK1.4的老项目升级了JDK1.6后BUG不断,最可恶的连接池被占满. 因为是使用tomcat的连接池所以在config下中添加 <Resource name="jdb ...
- jquery高级函数
.get() 将jq对象转成js $('#div1').get(0).innerHTML.text() 给标签添加文本 .detach() 和remove方法一样,但保留删除元素的所有行为$('div ...
- Vagrant的一个BUG - 不支持'change_host_name'
==> master: Setting hostname... Vagrant attempted to execute the capability 'change_host_name' on ...
- TJI读书笔记15-持有对象
TJI读书笔记15-持有对象 总览 类型安全和泛型 Collection接口 添加元素 List 迭代器 LinkedList 栈 Set Map Queue Collection和Iterator ...
- 深入了解jQuery之整体架构
本文是在阅读了Aaron艾伦的jQuery源码解析(地址:http://www.imooc.com/learn/172)后的个人体会以及笔记.在这里感谢艾伦老师深入浅出的讲解!! 先来看看如何生成一个 ...
- 那些可能被你忽略的MySQL优化技巧
说明:本文中的内容适用于MySQL5.1-5.6版本,不保证新的版本中仍然适用; 且只针对于大部分常见应用场景,是否有效果应以基于实际业务数据的测试为准. 1 优先把列设置为NOT NULL 允许NU ...
- Eclipse搭建GWT开发环境
1.下载Eclipse Kepler(4.3) 2.下载Maven Apache Maven Maven 3.下载JDK 4.设置系统变量Maven.JAVA_HOME.PATH. ...
- C语言基础补习
coolshell 中一个小例子在VC6.0编译后反汇编结果仅作记录: 源码: #include <stdio.h> int main(void) { ]; printf("%x ...
- js中块级作用域