当实体类名和数据库表列名不一致时不能封装数据的解决办法

1. <resultMap> 是什么?

  • 作用:<resultMap> 用来定义数据库表字段和Java实体类属性之间的对应关系。
  • 为什么需要?

数据库字段通常用下划线命名(如 brand_name),而Java类属性用驼峰命名(如 brandName)。MyBatis需要知道怎么把数据库查出来的数据,正确地“装配”到Java对象里。

<resultMap id="brandResultMap" type="com.itheima.pojo.Brand"><result column="brand_name" property="brandName"/><result column="company_name" property="companyName"/>
</resultMap>
  • id="brandResultMap":这是这个映射的名字,后面会用到。
  • type="com.itheima.pojo.Brand":指定要映射到哪个Java类()。
  • type 属性需要填写Java类的全限定名(即包名+类名),或者在有别名的情况下可以用别名。
  • 推荐写全类名,避免歧义。
  • <result column="brand_name" property="brandName"/>:

表示数据库的brand_name字段,对应Java对象的brandName属性。

  • <result column="company_name" property="companyName"/>:

表示数据库的company_name字段,对应Java对象的companyName属性。

2. <select> 是什么?

  • 作用:定义一个SQL查询语句,并指定用哪个<resultMap>来封装查询结果。
    <select id="selectAll" resultMap="brandResultMap">select * from tb_brand;
    </select>

  • id="selectAll":这是这个SQL语句的名字,对应Mapper接口里的方法名。
  • resultMap="brandResultMap":指定查询结果要用上面定义的brandResultMap来进行字段和属性的映射。
  • select * from tb_brand;:SQL语句,查询tb_brand表的所有数据。

3. 结合起来的作用

  • 当你在Java代码里调用selectAll()方法时,MyBatis会执行select * from tb_brand,查出所有数据。
  • 查出来的每一行数据,MyBatis会根据brandResultMap的定义,把brand_name字段的值赋给Java对象的brandName属性,把company_name字段的值赋给companyName属性,最终返回一个Brand对象的列表。

4. 总结

| <resultMap>| 定义数据库字段和Java属性的映射关系,解决命名不一致的问题 |

| <select> | 定义SQL查询语句,并指定用哪个resultMap来封装查询结果 |

一句话总结:

<resultMap>让数据库字段和Java属性“对号入座”,<select>用来查数据并用resultMap把结果装进Java对象。

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

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

相关文章

window系统上labelImg的安装与使用

一、window上安装Anaconda 下载&#xff1a;https://repo.anaconda.com/archive/选择版本&#xff0c;此次选择的是Anaconda3-2025.06-0-Windows-x86_64.exe双击安装在 Windows 搜索栏中输入 Anaconda Prompt 并打开。 二、安装pyton3.8 wondow环境 在 Windows 搜索栏中输入…

SSE 流与普通 HTTP 响应的区别

1. 连接特性 特性普通 HTTP 响应SSE 流连接持续时间一次性&#xff0c;请求-响应后立即关闭持久连接&#xff0c;保持打开状态通信方向单向 (客户端→服务器→客户端)单向 (服务器→客户端)数据格式完整响应体流式文本数据 (text/event-stream) 2. 数据传输方式 普通 HTTP 响…

Proteus仿真51单片机控制L298N PWM电机调速

51单片机概述 51单片机是指Intel公司开发的MCS-51系列单片机及其兼容产品&#xff0c;是应用最广泛的8位单片机系列之一。其名称来源于该系列的第一款芯片8051。 主要特点&#xff1a; 8位CPU&#xff1a;处理数据宽度为8位 哈佛结构&#xff1a;程序存储器和数据存储器分开…

批量将exb文件转为pdf的实用工具

最近在工作中遇到了一个棘手的问题&#xff1a;需要将大量CAXA电子图板(.exb)格式的图纸文件转换为PDF格式以便于共享和查阅。手动一个个打开转换不仅效率低下&#xff0c;而且容易出错。于是&#xff0c;我决定开发一个批量转换工具来解决这个问题。 使用效果 在实际使用中&…

从C++编程入手设计模式——命令模式

从C编程入手设计模式——命令模式 ​ 命令模式是一个用指令封装请求的优雅方法。换而言之&#xff0c;对于一个复杂的系统&#xff0c;当我们发现&#xff0c;使用一系列的指令&#xff08;Command&#xff09;来操作对象的时候&#xff0c;这个设计模式就会显得非常的实用。我…

【基础篇-消息队列】——如何通过网络传输结构化的数据( 序列化与反序列化)

目录 一、引入前提二、选择哪种序列化实现2.1、选择哪种序列化实现需要权衡的几个因素2.2、如何选择哪种序列化实现三、实现高性能的序列化和反序列化四、小结本文来源:极客时间vip课程笔记 一、引入前提 在 TCP 的连接上,它传输数据的基本形式就是二进制流,也就是一段一段的…

LINUX 622 SAMBA

SAMBA案例 user01通过wondows或linux在/samba/share 中创建、删除文件 环境配置 samba安装 [rootsamba caozx26]# yum install samba -y 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务…

Linux Sonic Agent 端部署(详细版)(腾讯云)

&#xff08;因为服务器是Linux的&#xff0c;只是安装了&#xff0c;并没有验证&#xff09; 1、编辑docker-compose.yml文件 在Services下添加Agent sonic-agent:image: "sonicorg/sonic-agent-linux:v2.7.2"environment:- SONIC_SERVER_HOST${SONIC_SERVER_HOST…

SpringCloud学习笔记 - 2、关于Cloud各种组件的停更/升级/替换

文章目录 前言SpringCloud是什么&#xff1f;SpringCloud 在 2018 年&#xff0c;技术体系SpringCloud 在 2020 年&#xff0c;“移除”了技术体系SpringCloud 在 2024 年&#xff0c;移除了技术体系SpringCloud 2024年&#xff0c;技术体系服务注册与发现 模块1、Eureka2、Con…

全面掌握 Nginx的功能和使用方法

从 C10K 到现代云原生 第一章 稀缺性哲学与 C10K 挑战 Nginx 的诞生并非偶然&#xff0c;它是在特定历史背景下&#xff0c;对一个严峻工程危机的直接而革命性的回应。要真正理解 Nginx 的设计精髓&#xff0c;我们必须回到 20 世纪末&#xff0c;探究那个催生了它的时代性难题…

[Linux] Vim编辑器 Linux输入输出重定向

Vim编辑器 Vim模式 command模式&#xff1a;该模式下键盘中的字母有特殊含义。如&#xff1a;G是跳转到最后一行&#xff1b;gg是跳转到第一行。 edit模式&#xff1a;在command模式下按i进入该模式。在该模式可以输入内容。在该模式下按esc返回command模式。 extended com…

用Rust写平衡三进制乘法器

1、平衡三进制乘法表 前面写了平衡三进制的加法器&#xff0c;这个乘法器是在这基础上的&#xff0c;没看过的可以回去看看&#xff0c;说到乘法器还是要参考前苏联的资料的&#xff0c;平衡三进制的乘法也是很方便的&#xff0c;在平衡三进制基础中有详细讲过&#xff0c;下图…

解决Vue2官网Webpack源码泄露漏洞

一&#xff1a;漏洞产生 Webpack是一个JavaScript应用程序的静态资源打包器。大部分Vue等应用项目会使用Webpack进行打包&#xff0c;如果没有正确配置&#xff0c;就会导致项目源码泄露&#xff0c;可能泄露的各种信息如API、加密算法、管理员邮箱、内部功能等等。 F12查看源…

新中国风通用读书颂词分享PPT模版

新国风PPT模版&#xff0c;古风影视剧PPT模版&#xff0c;天青色中国风读书颂词分享会PPT模版&#xff0c;国风通用PPT模版&#xff0c;茶味PPT模版&#xff0c;风雪夜归人PPT模版&#xff0c;小别离PPT模版&#xff0c;西江月茶词PPT模版 新中国风通用读书颂词分享PPT模版&…

Rust自动化测试的框架

Rust实现Web自动化测试的框架 以下是10个使用Rust实现Web自动化测试的框架示例,涵盖不同场景和工具链: 使用thirtyfour(基于Selenium) use thirtyfour::prelude::*;async fn example_selenium() -> WebDriverResult<()> {let caps = DesiredCapabilities::chro…

MySQL性能测试模板

引言&#xff1a;为什么MySQL性能测试如此重要&#xff1f; 你是否遇到过这些问题&#xff1a; 线上数据库突然卡顿&#xff0c;QPS暴跌&#xff1f;业务高峰期MySQL服务器CPU 100%&#xff0c;却找不到瓶颈&#xff1f;新功能上线后&#xff0c;数据库性能不升反降&#xff…

第八课:大白话教你逻辑回归

这节课咱们来聊聊 逻辑回归(Logistic Regression),别看名字里有“回归”,它其实是用来干 分类 的活儿的!我会用最接地气的方式,从定义讲到实战,保证你笑着学会,还能拿去忽悠朋友! 一:逻辑回归是啥?——当回归想不开,转行搞分类 1.1 定义:逻辑回归是个“概率算命…

项目中后端如何处理异常?

为了统一管理异常&#xff0c;在项目中封装了自定义异常类(BusinessException),全局异常处理器(GlobalExceptionHandler), 以及一些状态码(ErrorCode), 便于前端统一处理异常. 主要流程如下: 当项目业务发生逻辑错误时,会抛出BusinessException, 其中包含自定义错误码和信息.…

群晖 NAS Docker 镜像加速配置详细教程

通过为群晖NAS的Docker配置镜像仓库加速服务&#xff0c;可显著提升镜像拉取速度与稳定性。本指南详细介绍使用毫秒镜像 (1ms.run) 服务的配置步骤及日常使用方法。 一、配置前准备 开始配置前&#xff0c;推荐使用毫秒镜像的免登录方式获取镜像仓库地址。相比传统的账号密码…

Deepoc行业垂直大模型作为行业知识与AI深度融合的专用工具

一、​​行业专用智能诊断与预测性维护​​ ​​设备健康管理​​ ​​多源异构数据融合​​&#xff1a;垂直大模型通过时序对齐算法&#xff08;如动态时间规整DTW&#xff09;整合振动&#xff08;5kHz&#xff09;、温度&#xff08;1Hz&#xff09;、电流等多维度传感器数…