Mybatis数据封装

目录

解决方案:

1.起别名:

2.手动结果映射:

3.开启驼峰命名(推荐):


我们看到查询返回的结果中大部分字段是有值的,但是deptId,createTime,updateTime这几个字段是没有值的,而数据库中是有对应的字段值的,这是为什么呢?

原因如下:

  • 实体类属性名和数据库表查询返回的字段名一致,mybatis会自动封装。

  • 如果实体类属性名和数据库表查询返回的字段名不一致,不能自动封装。

1.起别名

在SQL语句中,对不一样的列名起别名,别名和实体类属性名一样

 @Select("select id, username, password, name, gender, image, job, entrydate, " +
         "dept_id AS deptId, create_time AS createTime, update_time AS updateTime " +
         "from emp " +
         "where id=#{id}")
 public Emp getById(Integer id);

再次执行测试类:

2.手动结果映射

通过 @Results及@Result 进行手动结果映射

 @Results({@Result(column = "dept_id", property = "deptId"),
           @Result(column = "create_time", property = "createTime"),
           @Result(column = "update_time", property = "updateTime")})
 @Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp where id=#{id}")
 public Emp getById(Integer id);

@Results源代码:

 @Documented
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD})
 public @interface Results {
 String id() default "";
 ​
 Result[] value() default {};  //Result类型的数组
 }

@Result源代码:

 @Documented
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD})
 @Repeatable(Results.class)
 public @interface Result {
 boolean id() default false;//表示当前列是否为主键(true:是主键)
 ​
 String column() default "";//指定表中字段名
 ​
 String property() default "";//指定类中属性名
 ​
 Class<?> javaType() default void.class;
 ​
 JdbcType jdbcType() default JdbcType.UNDEFINED;
 ​
 Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;
 ​
 One one() default @One;
 ​
 Many many() default @Many;
 }

3.开启驼峰命名(推荐)

如果字段名与属性名符合驼峰命名规则,mybatis会自动通过驼峰命名规则映射

驼峰命名规则: abc_xyz => abcXyz

  • 表中字段名:abc_xyz

  • 类中属性名:abcXyz

 # 在application.properties中添加:
 mybatis.configuration.map-underscore-to-camel-case=true

要使用驼峰命名前提是 实体类的属性 与 数据库表中的字段名严格遵守驼峰命名。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目管理系统厂商:奥博思发布《项目管理系统助力 IPD 高效落地》演讲

一场题为&#xff1a;“标准为基&#xff0c;项目之上 &#xff0c;持续提升 PMO 卓越中心”的全国 PMO 专业人士年度盛会在京召开。会议围绕 PMO 卓越中心能力提升、项目管理标准化、项目管理体系建设等核心话题力邀业界专家、卓有建树的 PMO 实践精英来演讲、交流、分享。 奥…

无人机在航拍领域有哪些独特优势?

那肯定是便宜啊&#xff0c;相比传统的飞机或直升机航拍作业&#xff0c;无人机航拍具有更快的响应速度和更低的成本。无人机可以随时随地进行起降&#xff0c;并在短时间内完成航拍任务&#xff0c;极大地提高了作业效率。同时&#xff0c;无人机的运营成本相对较低&#xff0…

C语言快速学习笔记

学习网站&#xff1a;C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com) 这个网站知识完整&#xff0c;讲解清晰。 在线C语言编程工具&#xff1a;菜鸟教程在线编辑器 (runoob.com) 国外学习网站&#xff1a;C语言介…

nanodiffusion代码逐行理解之time embedding

目录 一、time embedding调用过程二、time embedding定义过程三、PositionalEmbedding定义过程 time embedding本质上就是把时间步t转换为指定维度的嵌入向量&#xff0c;这个向量由时间步 &#xff0c;向量维度&#xff0c;周期等参数决定&#xff0c;可以简单理解为根据时间步…

说说硬件调试中发现的那些低级错误

高速先生成员--周伟 最近遇到很多debug相关的咨询&#xff0c;曾经我们说过&#xff0c;我们做过的板子越多&#xff0c;遇到问题的概率也越多&#xff0c;很多别人没遇到过的问题&#xff0c;说不定我们早就触过雷&#xff0c;从而类似的问题形成经验总结&#xff0c;就不会再…

Python知识点背诵手册,超详细知识梳理

一、手册介绍 《Python知识点背诵手册》是一份详尽的Python学习资料&#xff0c;旨在帮助学习者系统地掌握Python语言的基础知识和进阶技能。该手册将Python的所有关键语法和概念进行了精炼的总结&#xff0c;并以易于理解和记忆的方式呈现。以下是手册的主要特点和内容概述&a…

石墨烯分散液制备方法众多 应用领域广泛

石墨烯分散液制备方法众多 应用领域广泛 石墨烯分散液指将石墨烯纳米片均匀分散在特定溶剂中制成的溶液。石墨烯分散液具有化学稳定性好、生物相容性好、热稳定性好等优势&#xff0c;未来有望在涂料、纤维制品、电池制造、油墨等领域获得广泛应用。 石墨烯分散液以石墨…

AWS云创建EC2与所需要注意事项

AWS云&#xff08;Amazon Web Services&#xff09;作为全球领先的云计算服务提供商&#xff0c;为用户提供了丰富的云计算服务。其中&#xff0c;EC2&#xff08;Elastic Compute Cloud&#xff09;是AWS云中的一项重要服务&#xff0c;可以帮助用户轻松创建和管理虚拟服务器实…

从0开始搭建vue项目

#先查下电脑有没有安装过node和npm node -v npm -v #安装vue npm install -g vue #安装webpack npm install webpack -g 都安装好后&#xff0c;进入你想创建的文件夹内 创建名字&#xff1a;vue init webpack <project_name> 就默认回车 然后根据项目需求Y/n 比如…

提升学历的最佳选择:深职训学校的成人大专远程教育

你有没有想过&#xff0c;一边工作一边提升自己的学历&#xff1f;很多人都觉得这是一件不可能完成的任务&#xff0c;但今天我要告诉你&#xff0c;其实有一个不错的选择&#xff0c;那就是深职训学校的成人大专远程教育。 深圳提升学历www.shenzhixun.com 为什么要选择成人大…

难道 Java 已经过时了?

当一门技术已经存在许多年了&#xff0c;它可能会失去竞争力&#xff0c;而后黯然退场&#xff0c;默默地离开&#xff0c;这对大部分的人来说就已经算是过时了。 Java 于 1995 年正式上线&#xff0c;至今已经走过了 27 个年头&#xff0c;在众多编程技术里算是年龄比较大的语…

开箱机视觉系统大揭秘:如何轻松辨别千差万别的包装?

在现代物流仓储领域&#xff0c;开箱机作为提升作业效率的关键设备&#xff0c;正日益受到行业的重视。而开箱机的视觉系统更是其十分强大&#xff0c;能够准确辨认不同包装&#xff0c;确保物流作业的高效与准确。与星派深入探究一下开箱机视觉系统是如何工作的&#xff0c;以…

2007-2023年36家商业银行绿色信贷、期末贷款总额、银行总资产等相关指标数据(2023年无缺失)

2007-2023年36家商业银行绿色信贷数据&#xff08;2023年无缺失&#xff09; 1.时间&#xff1a;2007-2023年&#xff0c;2023年无缺失 2.来源&#xff1a;银行年报和社会责任报告 3.指标:绿色信贷余额、期末贷款总额、绿色信贷比率、总资产收益率、流动性比率、拨备覆盖率、…

烧烤店外卖小程序开展的用途有什么

同城餐饮业里烧烤绝对是年轻人的最爱&#xff0c;各式各样的餐品种类垂涎欲滴、让人忍不住多次消费&#xff0c;当然同行门店数量也非常多&#xff0c;在长期发展中&#xff0c;构建自己的私域平台运营和赋能客户直接消费的路径也不可少。 到店和外卖是主要生意开展形式&#…

2.2.3 C#中显示控件BDPictureBox 的实现----控件实现

2.2.3 C#中显示控件BDPictureBox 的实现----控件实现 1 界面控件布局 2图片内存Mat类说明 原始图片&#xff1a;m_raw_mat ,Display_Mat()调用时更新或者InitDisplay_Mat时更新局部放大显示图片&#xff1a;m_extract_zoom_mat&#xff0c;更新scale和scroll信息后更新overla…

猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0

猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0 猫头虎是谁&#xff1f; 大家好&#xff0c;我是 猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评…

公路道路救援师傅入驻派单小程序开发

道路救援入驻与派单系统小程序开发——面向专业市场的解决方案。 在构建道路救援服务的数字化生态系统中&#xff0c;一款高效、用户友好的入驻与派单小程序显得尤为重要。该小程序旨在无缝连接救援服务师傅和需要道路救援的用户&#xff0c;通过一系列精心设计的功能模块&…

经典文献阅读之--WidthFormer(基于Transformer的BEV方案量产方案)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

“剪切走的文件救星:详解两大高效恢复策略“

深入剖析剪切走的文件 在日常的计算机操作中&#xff0c;剪切操作是文件管理的常用手段&#xff0c;但一旦操作不当或意外中断&#xff0c;文件就可能“剪切走”&#xff0c;消失在用户的视野中。这些文件并未真正从硬盘上消失&#xff0c;而是因为文件系统的索引被修改&#…

三菱A系列网络连接

寄存器名 读写 寄存器类型 变量类型 寄存器范围 说明 X##1 R/W BIT I/O离散 0&#xff0d;7FF Input Y##1 R/W BIT I/O离散 0&#xff0d;7FF Output M##1 R/W BIT I/O离散 0&#xff0d;9255 Internal relay B##1 R/W BIT I/O离散 0&#xff0d;3FF Link relay F##1 R/W BIT I…