4.mybatis属性和表的列名不相同时的处理方法
/**
* 属性和表的列名不相同时的处理方法
* 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属性和表的列名不相同时的处理方法的更多相关文章
- mybatis中表与表之间的关联
第三天 1.mybatis处理表与表之间的关系? 比如要在帖子回复表里显示其它两张相关联表的信息. 处理的第一种方式: 1)主要的数据实体类是ReplyInfo,相关联的实体表的数据是TitleInf ...
- mybatis属性详解
前言 MyBatis是基于"数据库结构不可控"的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转 ...
- 【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询
mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件+count 需求: ======================================= ...
- MyBatis的多表查询笔记
MyBatis的多表查询 随着学习的进步,需求的提高,我们在实际开发中用的最多的还是多表查询,就让我们一起学习MyBatis中的多表查询. 数据库准备 Class表 Student表 项目结构 这次使 ...
- Mybatis的分表实战
前言: 以前写代码, 关于mysql的分库分表已被中间件服务所支持, 业务代码涉及的sql已规避了这块. 它对扩展友好, 你也不知道到底他分为多少库, 多少表, 一切都是透明的. 不过对于小的团队/工 ...
- SqlSever查询某个表的列名称、说明、备注、注释,类型等
这周整理了数据库文档,发现用导出脚本来整理表的信息注释查看不方便,因此我就想能不能SQL语句查询表的注释或者表的字段.我就我问朋友是不是可以,他给我点指导,然后自己也在网上百度,来实现自己的想法,我把 ...
- SpringBoot集成Mybatis实现多表查询的两种方式(基于xml)
下面将在用户和账户进行一对一查询的基础上进行介绍SpringBoot集成Mybatis实现多表查询的基于xml的两种方式. 首先我们先创建两个数据库表,分别是user用户表和account账户表 ...
- Mybatis 属性配置
properties 定义配置,配置的属性可以在整个配置文件中的其他位置进行引用 <properties resource="db.properties"></ ...
- SpringBoot整合Mybatis对单表的增、删、改、查操作
一.目标 SpringBoot整合Mybatis对单表的增.删.改.查操作 二.开发工具及项目环境 IDE: IntelliJ IDEA 2019.3 SQL:Navicat for MySQL 三. ...
随机推荐
- V4L2应用程序框架-二【转】
本文转载自:http://blog.csdn.net/tommy_wxie/article/details/11371439 V4L2驱动框架 主设备号: 81 次设备号: 0-63 64 ...
- IEnumerator:概念详解
IEnumerable接口是非常的简单,只包含一个抽象的方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象.IEnumerator对象有什么呢?它是一个真正的 ...
- ThinkPHP 3.2.3的 R 方法
R方法是可以调用其他的Controller中的方法, 例如 我想在Mit/DebugController.class.php中调用Foo/DoController.class.php中的share方法 ...
- 鸟哥的linux私房菜---非常好的linux基础网址【转】
转自:http://linux.vbird.org/linux_basic/0320bash.php 在 Linux 的環境下,如果你不懂 bash 是什麼,那麼其他的東西就不用學了!因為前面幾章我們 ...
- (转载)CSV 文件处理 PERL
http://cn.perlmaven.com/how-to-read-a-csv-file-using-perl http://search.cpan.org/~hmbrand/Text-CSV_X ...
- 通过SQL Server Profiler来监视分析死锁
在两个或多个SQL Server进程中,每一个进程锁定了其他进程试图锁定的资源,就会出现死锁,例如,进程process1对table1持有1个排它锁(X),同时process1对table2请求1个排 ...
- bash环境变量读取顺序
bash环境变量读取顺序: 交互式登录的用户: /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bas ...
- Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台
日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志收集装置,对日志中的关键字进行监控,触发异常 ...
- POSTGRESQL9.5之pg_rman工具
pg_rman是一款专门为postgresql设计的在线备份恢复的工具.其支持在线和基于时间点备份方式,还可以通过创建backup catalog来维护DB cluster备份信息. 看起来好像是模仿 ...
- jquery中的节点的操作
节点的操作 Dom 文档对象 模型 解决 一.插入节点 Append() 在每个匹配的元素中追加内容 Var $li_1= “<li></li>”; Var $li_2 = ...