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

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

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

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

相关文章

分析数据不要太老实,有BI方案就用起来——奥威BI软件

在当今数据驱动的时代&#xff0c;企业对于数据分析的需求日益迫切。然而&#xff0c;面对海量的数据和复杂的分析需求&#xff0c;许多企业仍停留在传统的手工分析模式&#xff0c;这不仅效率低下&#xff0c;还容易出错。幸运的是&#xff0c;像奥威BI这样的数据分析软件提供…

【深度学习】扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下&#xff0c;文档扫描功能…

GitCode见证:华为云DevUI如何定义下一代前端开发

在当今快速发展的数字时代&#xff0c;前端开发已成为企业数字化转型的关键一环。随着用户对交互体验的期待不断增长&#xff0c;拥有一个强大、灵活且易于使用的前端解决方案变得至关重要。 DevUI的诞生&#xff0c;源于华为对研发工具的深入理解和长期积累&#xff0c;作为一…

【云原生监控】Prometheus 普罗米修斯从搭建到使用详解

目录 一、前言 二、服务监控概述 2.1 什么是微服务监控 2.2 微服务监控指标 2.3 微服务监控工具 三、Prometheus概述 3.1 Prometheus是什么 3.2 Prometheus 特点 3.3 Prometheus 架构图 3.3.1 Prometheus核心组件 3.3.2 Prometheus 工作流程 3.4 Prometheus 应用场景…

如何使用C++进行高效的数据处理和数据挖掘?

如何使用C进行高效的数据处理和数据挖掘&#xff1f; 数据处理和数据挖掘在如今信息爆炸的时代变得越来越重要。为了快速、高效地处理和分析大量的数据&#xff0c;选择合适的编程语言非常重要。C作为一种高性能的编程语言&#xff0c;在数据处理和数据挖掘领域也有广泛的应用…

8624 多项式系数累加和

这个问题可以通过使用数学的导数规则来解决。对于一个多项式&#xff0c;它的导数可以通过将每一项的系数乘以它的指数&#xff0c;然后降低该项的指数来得到。这个过程可以重复M次来得到多项式的M阶导数。然后&#xff0c;我们可以简单地将所有项的系数相加来得到结果。 以下…

3D Gaussian Splatting代码中的train和render两个文件代码解读

现在来聊一聊训练和渲染是如何进行的 training train.py line 31 def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoint_iterations, checkpoint, debug_from):# 初始化第一次迭代的索引为0first_iter 0# 准备输出和日志记录器tb_writer p…

wordpress企业主题和wordpress免费主题

农业畜牧养殖wordpress主题 简洁大气的农业畜牧养殖wordpress主题&#xff0c;农业农村现代化&#xff0c;离不开新农人、新技术。 https://www.jianzhanpress.com/?p3051 SEO优化wordpress主题 简洁的SEO优化wordpress主题&#xff0c;效果好不好&#xff0c;结果会告诉你…

第一后裔The First Descendant延迟、卡顿、无法联机?

The First Descendant第一后裔游戏中还设计了多种辅助攻击手段&#xff0c;它们如同角色手中的魔法&#xff0c;为战斗增添了无数可能性。这些辅助攻击手段或能造成范围伤害&#xff0c;或能减速敌人&#xff0c;甚至能召唤出强大的支援力量。最近有玩家反映&#xff0c;遇到了…

Windows条件竞争提权漏洞复现(CVE-2024-300889)

漏洞原理 当内核将当前令牌对象的 _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION 复制到用户模式时&#xff0c;错误位于函数 AuthzBasepCopyoutInternalSecurityAttributes 内部&#xff0c;该模式的结构如下&#xff1a; //0x30 bytes (sizeof) struct _AUTHZBASEP_SECURIT…

科研工具|从图片中提取曲线数据

最近水哥在做一个项目时需要用到一篇论文中的数据&#xff0c;而这数据是作者的实验数据&#xff0c;且年代较为久远&#xff0c;联系原作者要一份数据也不太现实&#xff0c;因而只能从论文的图片中提取数据了。 目前市面上有很多小软件可以实现这方面的功能&#xff0c;比如…

DVT:华为提出动态级联Vision Transformer,性能杠杠的 | NeurIPS 2021

论文主要处理Vision Transformer中的性能问题&#xff0c;采用推理速度不同的级联模型进行速度优化&#xff0c;搭配层级间的特征复用和自注意力关系复用来提升准确率。从实验结果来看&#xff0c;性能提升不错 来源&#xff1a;晓飞的算法工程笔记 公众号 论文: Not All Image…

智慧应急管理平台:数字孪生,让防汛救灾更科学高效

近期全国各地暴雨频发&#xff0c;城市排水系统面临着前所未有的挑战&#xff0c;应急防涝已成为城市管理中不可或缺的一环。在这个信息化、智能化的时代&#xff0c;数字孪生技术以其独特的优势&#xff0c;为应急领域带来了革命性的变革。数字孪生&#xff0c;作为现实世界在…

揭秘:学校教室采用数码管同步时钟的原因-讯鹏电子钟

在学校的教室里&#xff0c;我们常常会看到数码管同步时钟的身影。究竟是什么原因让它成为学校教室的宠儿呢&#xff1f;让我们一同来探究其中的奥秘。 数码管同步时钟具有极高的准确性。对于学校这样一个对时间管理要求严格的场所&#xff0c;准确的时间是保障教学秩序的基石。…

SwinIR: Image Restoration Using Swin Transformer(ICCV 2021)含代码复现

目录 一、Introduction 1 Motivation 2 Contribution 二、原理分析 1 Network Architecture 1&#xff09;Shallow feature extraction 2) deep feature extraction 3) image reconsruction modules 4) loss function 2 Residual Swin Transformer Block 三、实验结果…

没有调用memcpy却报了undefined reference to memcpy错误

现象 在第5行出现了&#xff0c;undefined reference to memcpy’ 1 static void printf_x(unsigned int val) 2{ 3 char buffer[32]; 4 const char lut[]{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; 5 char *p buffer; 6 while (val || p buffer) { 7 *(p) …

基于循环神经网络的一维信号降噪方法(简单版本,Python)

代码非常简单。 import torch import torch.nn as nn from torch.autograd import Variable from scipy.io.wavfile import write #need install pydub module #pip install pydub import numpy as np import pydub from scipy import signal import IPython import matplot…

C语言学习记录(十二)——指针与数组及字符串

文章目录 前言一、指针和数组二、指针和二维数组**行指针(数组指针)** 三、 字符指针和字符串四、指针数组 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、指针和数组 在C语言中 &#xff0…

AI降重,不再难:降AI率的实用技巧大揭秘

如何有效降低AIGC论文的重复率&#xff0c;也就是我们说的aigc如何降重&#xff1f;AIGC疑似度过高确实是个比较愁人的问题。如果你用AI帮忙写了论文&#xff0c;就一定要在交稿之前做一下AIGC降重的检查。一般来说&#xff0c;如果论文的AIGC超过30%&#xff0c;很可能会被判定…

CAS操作

CAS 全称:Compare and swap,能够比较和交换某个寄存器中的值和内存中的值,看是否相等,如果相等,则把另外一个寄存器中的值和内存进行交换. (这是一个伪代码,所以这里的&address实际上是想要表示取出address中的值) 那么我们可以看到,CAS就是这样一个简单的交换操作,那么…