MyBatis框架-ResultMap

文章目录

    • ResultMap
      • sql
      • User.java
      • 解决方案
        • **方案一:为列名指定别名 , 别名和java实体类的属性名一致(自动映射)**
          • UserMapper.xml
          • UserTest.java
          • 测试结果
        • **方案二:使用结果集映射->ResultMap 【推荐】(手动映射)**
          • 测试结果

ResultMap

ResultMap:解决属性名和字段不一致的问题

sql

在原来的user表用加入age字段

-- 在user表中添加age新字段
alter table user add column age int(3) null;
-- 更新id为1的数据年龄为18
update user set test.user.age = 18 where id = 1;

User.java

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {private int id;  //idprivate String name;   //姓名private String pwd;   //密码private int userAge;//和数据库字段不同
}

UserTest.java

@Test
public void selectUserByIdTest(){SqlSession session = MyBatisUtil.getSession();UserMapper mapper = session.getMapper(UserMapper.class);System.out.println(mapper.selectUserById(1));session.close();
}

查询userAge为0

在这里插入图片描述

  • select * from user where id = #{id} 可以看做 select id,name,pwd from user where id = #{id}
  • mybatis会根据这些查询的列名(会将列名转化为小写,数据库不区分大小写) , 去对应的实体类中查找相应列名的set方法设值 , 由于找不到setUserAge() , 所以userAge返回0l ; 【自动映射】

解决方案

方案一:为列名指定别名 , 别名和java实体类的属性名一致(自动映射)
UserMapper.xml
<select id="selectUserById" resultType="com.sin.pojo.User" parameterType="int">select id,name,pwd,age as'userAge' from user where id = #{id}
</select>
UserTest.java
@Test
public void selectUserByIdTest(){SqlSession session = MyBatisUtil.getSession();UserMapper mapper = session.getMapper(UserMapper.class);System.out.println(mapper.selectUserById(1));session.close();
}
测试结果

在这里插入图片描述

方案二:使用结果集映射->ResultMap 【推荐】(手动映射)

UserMapper.xml

<resultMap id="UserMap" type="com.sin.pojo.User"><!-- id主键 --><id column="id" property="id"/><!-- property是实体类的属性名,column是数据库表的列民 --><result property="name" column="name"/><result property="pwd" column="pwd"/><result property="userAge" column="age"/></resultMap>
<select id="selectUserById" resultType="com.sin.pojo.User" parameterType="int" resultMap="UserMap">select id,name,pwd,age  from user where id = #{id}
</select>

UserTest.java

@Test
public void selectUserByIdTest(){SqlSession session = MyBatisUtil.getSession();UserMapper mapper = session.getMapper(UserMapper.class);System.out.println(mapper.selectUserById(1));session.close();
}
测试结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438045.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑如何调整照片尺寸大小和像素?一键修改图片大小

有时候&#xff0c;我们需要将图片调整为特定的大小&#xff0c;比如制作海报、头像或者上传到网站等&#xff0c;所以修改图片的尺寸和大小是在处理图片时常见的需求&#xff0c;那么电脑如何调整照片尺寸大小和像素呢&#xff1f;今天介绍一个最直接的图片尺寸大小怎么修改的…

深度学习快速入门--7天做项目

深度学习快速入门--7天做项目 0. 引言1. 本文内容2. 深度学习是什么3. 项目是一个很好的切入点4. 7天做项目4.1 第一天&#xff1a;数据整理4.2 第二天&#xff1a;数据处理4.3 第三天&#xff1a;简单神经网络设计4.4 第四天&#xff1a;分析效果与原因4.5 第五天&#xff1a;…

回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测

回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测 目录 回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-LSSVM【24年…

【Javaweb】只给入门Javaweb的人看!

前言 最近我在B站上用2天的时间迅速刷完了黑马程序员的Javaweb课程&#xff0c;这个课程内容非常多&#xff0c;总共有42个小时的学习内容。然而&#xff0c;对于那些寻找Java后端开发人员岗位的人来说&#xff0c;实际上Javaweb并不是非常重要&#xff0c;只需对其有简单的了…

C语言第十二弹--扫雷

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 扫雷 1、扫雷游戏分析和设计 1.1、扫雷游戏的功能说明 1.2 游戏的分析和设计 1.2.1、数据结构的分析 1.2.2、文件结构设计 2、扫雷游戏的结构分析 2.1、用…

springboot+vue3支付宝接口案例-第二节-准备后端数据接口

springbootvue3支付宝接口案例-第二节-准备后端数据接口&#xff01;今天经过2个小时的折腾。准备好了我们这次测试支付宝线上支付接口的后端业务数据接口。下面为大家分享一下&#xff0c;期间发生遇到了一些弯路。 首先&#xff0c;我们本次后端接口使用的持久层框架是JPA。这…

Linux的优先级说明

一、背景 在工作中&#xff0c;不少同学对nice&#xff0c;priority&#xff0c;schedue策略&#xff0c;实时优先级&#xff0c;普通进程优先级的概念混淆&#xff0c;导致最后的代码可能引入bug&#xff0c;本文将统一进行说明&#xff0c;部分内容参考网络大佬的文章 &…

SpringBoot不同的@Mapping使用

文章目录 一、介绍二、使用 一、介绍 一般Mapping类注解在Spring框架中用于将HTTP请求映射到对应的处理器方法。它们各自对应于不同类型的HTTP方法&#xff0c;主要用于RESTful Web服务中。以下是每个注解的作用&#xff1a; GetMapping: 用于映射HTTP GET请求到处理器方法。通…

第15章 Java网络编程

第15章 网络编程 学习目标 了解网络通信协议参考模型 能够理解IP地址和端口号的作用 能够在程序中表示IP地址和端口号 能够说出TCP和UDP网络协议的区别 了解基于Socket的TCP网络编程 了解基于Socket的UDP网络编程 15.1 软件结构 C/S结构 &#xff1a;全称为Client/Server结构…

智能加湿器数据分析:预计2025年市场规模将达到164.18亿元

随着经济的发展和人民生活水平的提高&#xff0c;人们对生活质量和健康的要求愈来愈高。空气加湿器慢慢的走进家庭当中&#xff0c;预计2023年中国线上超声波加湿器零售额同比下降4.9%;线上纯净型加湿器零售额同比增长44.8%。随着社会科技的不断进步和居民消费水平的不断提高&a…

云微呼电话机器人:现代通讯的智能化助手

在当今数字化时代&#xff0c;电话机器人已经成为了企业通讯和客户服务领域的重要工具。这些智能系统通过自动化拨号和语音交互技术&#xff0c;为企业提供了高效、智能的电话沟通解决方案。本文将深入探讨电话机器人的应用范围、优势以及未来发展的前景。 应用范围&#xff1…

洗地机哪个牌子好?2024洗地机推荐

洗地机作为一种几乎替代了传统无线吸尘器的清洁工具&#xff0c;近年来在市场上迅速崛起。其优越的清洁效果和智能化设计使其成为许多家庭不可或缺的家电之一。在短短的几年时间里&#xff0c;市场上涌现出了各种各样的品牌和型号&#xff0c;价格也从几百元到数千元不等&#…