/**
* 属性和表的列名不相同时的处理方法
* 1.sql中给列重新命名:
*    select tid id, tname name from teacher t where tid=#{id}
* 2.在teacherMapper.xml中使用resultMap标签
*    <select id="getTeacher2" parameterType="int" resultMap="getTeacherMap">
*     select * from teacher where tid=#{id}
*    </select>
*    <resultMap type="Teacher" id="getTeacherMap">
*      <id property="id" column="tid"/>
*      <result property="name" column="tname"/>
*    </resultMap>
* @author 魅力_小生
*
*/

mysql表:Teacher[tid, tname], Java 实体类:Teacher[id, name]

建表语句:

create table
CREATE TABLE `teacher` (
`tid` int(11) NOT NULL auto_increment,
`tname` varchar(20) default NULL,
PRIMARY KEY (`tid`)
) 添加2条数据:
1 老师A
2 老师B

Teacher实体类:

public class Teacher {
private int id;
private String name; public Teacher() {
super();
}
public Teacher(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Teacher [id=" + id + ", name=" + name + "]";
} }

一、第一种处理方法:sql中给列重新命名

select tid id, tname name from teacher t where tid=#{id}

1.1 写实体类关联的MapperXML:

<mapper namespace="com.mlxs.mybatis.test3.teacherMapper">
<!--
* 属性和表的列名不相同时的处理方法
* 1.sql中给列重新命名:
* select tid id, tname name from teacher t where tid=#{id}
-->
<select id="getTeacher" parameterType="int" resultType="Teacher">
select tid id, tname name from teacher t where tid=#{id}
</select>
</mapper>

1.2 写java测试类

/**
* 属性和表的列名不相同时的2种处理方法
* 1.sql中给列重新命名:
* select tid id, tname name from teacher t where tid=#{id}
* @author 魅力_小生
*
*/
@Test
public void getTeacher(){
//创建session,设置事务为true
SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
String statement = "com.mlxs.mybatis.test3.teacherMapper.getTeacher";
Teacher teacher = session.selectOne(statement, "1");
System.out.println("teacher--->"+teacher);
session.close();
}

1.3 结果

teacher--->Teacher [id=1, name=老师A]

二、第二种处理方法:使用resultMap标签

2.1 写实体类关联的MapperXML:

<mapper namespace="com.mlxs.mybatis.test3.teacherMapper">

    <!--
属性和表的列名不相同时的处理方法:
2.在teacherMapper.xml中使用resultMap标签
-->
<select id="getTeacher2" parameterType="int" resultMap="getTeacherMap">
select * from teacher where tid=#{id}
</select>
<resultMap type="Teacher" id="getTeacherMap">
<id property="id" column="tid"/>
<result property="name" column="tname"/>
</resultMap>
</mapper>

2.2 Java测试类

/**
* 属性和表的列名不相同时的2种处理方法
* 2.在teacherMapper.xml中使用resultMap标签
* <select id="getTeacher2" parameterType="int" resultMap="getTeacherMap">
* select * from teacher where tid=#{id}
* </select>
* <resultMap type="Teacher" id="getTeacherMap">
* <id property="id" column="tid"/>
* <result property="name" column="tname"/>
* </resultMap>
* @author 魅力_小生
*
*/
@Test
public void getTeacher2(){
//创建session,设置事务为true
SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
String statement = "com.mlxs.mybatis.test3.teacherMapper.getTeacher2";
Teacher teacher = session.selectOne(statement, "1");
System.out.println("teacher--->"+teacher);
session.close();
}

2.3 结果

teacher--->Teacher [id=1, name=老师A]

4.mybatis属性和表的列名不相同时的处理方法的更多相关文章

  1. mybatis中表与表之间的关联

    第三天 1.mybatis处理表与表之间的关系? 比如要在帖子回复表里显示其它两张相关联表的信息. 处理的第一种方式: 1)主要的数据实体类是ReplyInfo,相关联的实体表的数据是TitleInf ...

  2. mybatis属性详解

    前言 MyBatis是基于"数据库结构不可控"的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转 ...

  3. 【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询

    mybatis实现 主从表 left join  1:n 一对多 分页查询   主表从表都有查询条件+count 需求: ======================================= ...

  4. MyBatis的多表查询笔记

    MyBatis的多表查询 随着学习的进步,需求的提高,我们在实际开发中用的最多的还是多表查询,就让我们一起学习MyBatis中的多表查询. 数据库准备 Class表 Student表 项目结构 这次使 ...

  5. Mybatis的分表实战

    前言: 以前写代码, 关于mysql的分库分表已被中间件服务所支持, 业务代码涉及的sql已规避了这块. 它对扩展友好, 你也不知道到底他分为多少库, 多少表, 一切都是透明的. 不过对于小的团队/工 ...

  6. SqlSever查询某个表的列名称、说明、备注、注释,类型等

    这周整理了数据库文档,发现用导出脚本来整理表的信息注释查看不方便,因此我就想能不能SQL语句查询表的注释或者表的字段.我就我问朋友是不是可以,他给我点指导,然后自己也在网上百度,来实现自己的想法,我把 ...

  7. SpringBoot集成Mybatis实现多表查询的两种方式(基于xml)

     下面将在用户和账户进行一对一查询的基础上进行介绍SpringBoot集成Mybatis实现多表查询的基于xml的两种方式.   首先我们先创建两个数据库表,分别是user用户表和account账户表 ...

  8. Mybatis 属性配置

    properties  定义配置,配置的属性可以在整个配置文件中的其他位置进行引用 <properties resource="db.properties"></ ...

  9. SpringBoot整合Mybatis对单表的增、删、改、查操作

    一.目标 SpringBoot整合Mybatis对单表的增.删.改.查操作 二.开发工具及项目环境 IDE: IntelliJ IDEA 2019.3 SQL:Navicat for MySQL 三. ...

随机推荐

  1. docker-gerrit

    Docker Hub https://yeasy.gitbooks.io/docker_practice/content/repository/dockerhub.html 但如何直接下载成压缩文件呢 ...

  2. linux 集群配置ssh无密码访问

    一.修改host文件 1) 用客户端工具(ssh client或者putty)连接到linux服务器.在root用户下输入命令 vi /etc/hosts,用vi编辑hosts文件,如下: #127. ...

  3. PDA调用WCF服务引用

    在 http://www.cnblogs.com/yiping06993010/archive/2009/11/01/1593912.html 中,的作者提到使用NetCFSvcUtil.exe生成代 ...

  4. MySQL 5.7 SYS系统SCHEMA

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在说明系统数据库之前,先来看下MySQL在数据字典方面的演变历史:MySQL4.1 提供了information_schema 数据字典.从此可以 ...

  5. bodybuilding

    增大肌肉块的14大秘诀:大重量.低次数.多组数.长位移.慢速度.高密度.念动一致.顶峰收缩.持续紧张.组间放松.多练大肌群.训练后进食蛋白质.休息48小时.宁轻勿假. 1. 大重量.低次数:健美理论中 ...

  6. POJ 3349:Snowflake Snow Snowflakes(数的Hash)

    http://poj.org/problem?id=3349 Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K T ...

  7. html+css复习之第1篇

    1. 保证在火狐浏览器字体<12px,苹果横屏的时候字体显示大小还是12px html { background: #fff; -webkit-text-size-adjust: 100%; - ...

  8. css 样式设计(一)( 在线150个例子 | 背景 | 文本 | 字体 | 链接 | 列表 | 表格 | 盒模型 | 边框 | 轮廓 | 边距 | 填充 |分组和嵌套 | 尺寸 | 定位 | 浮动 |对齐 )

    一.css在线150个例子 http://www.w3cschool.cc/css/css-examples.html 二.背景图片水平方向重复 : body { background-image:u ...

  9. 跟我一起Django - 01 安装和初始化

    跟我一起Django - 01 安装和初始化 python环境 C:\Python27\Lib\site-packages>python --versionPython 2.7.5 安装setu ...

  10. Color Me Less 分类: POJ 2015-06-10 18:24 11人阅读 评论(0) 收藏

    Color Me Less Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31693   Accepted: 15424 D ...