MyBatis 解决上篇的参数绑定问题以及XML方式交互

前言

上文:MyBatis 初识简单操作-CSDN博客

上篇文章我们谈到的Spring中如何使用注解对Mysql进行交互

但是我们发现我们返回出来的数据明显有问题

我们发现后面三个字段的信息明显没有展示出来

下面我们来谈谈解决方案

解决方案

这里的原因本质上是因为mysql中和对象中的字段属性不一致导致的

所以我们这个时候可以让他们两个的名称强制相同,从而达成绑定

这里一共有三种解决方案,分别是

1.配置驼峰自动转换 

2.从sql层面重命名与对象中的字段属性一一对应

3.使用注解映射强行绑定

我们由难到简,慢慢来,先来测试使用sql重命名的方式

1.使用重命名方式

就是将数据库中的返回字段重命名成项目中对应的对象属性

直接完成任务

2.注解方式

然后我们再尝试一下注解的方式解决问题

如果我们有大量的表需要复用一样测重命名方式

我们可以使用另一个注解对其进行修饰,这样可以提高代码的简洁性

3.使用配置选项自动绑定

只需要在配置文件中加上这一行代码即可

他的功能就会自动将数据库中使用_连接的字段转化为驼峰来进行传输

也是非常的好用,无需手动修改代码,使程序更优雅

除了使用注解来完成与数据库的交互,我们还可以使用XML的方式来完成与数据库的交互,下面我们就来演示XML的方式完成交互

XML方式交互

这里首先需要先配置对应的xml文件

使用xml文件配置首先也需要指定xml文件路径,在配置文件里修改即可

这里我们的classpath指的resource文件夹下mapper文件夹下以Mapper结尾的xml文件

然后我们进行创建xml文件进行配置

注意修改这里的namespace

修改到对应好你需要实现的接口名即可

 这里书写xml文件和注解类似增删改是没有返回值的,无需指定返回值的全类名

查的时候需要指定对应的返回值的全类名

注:这里也会出现几种数据库和类之间名称不对应的情况,我们还是使用上述三种操作来进行对应的属性绑定,博主这里使用的是自动转换的方式进行绑定

xml绑定方式

总结

1.配置yml文件设置xml方式

2.创建xml文件  修改xml文件对应的实现接口

3.书写接口 在xml文件中对应标签

4.书写标签即可运行

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

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

相关文章

2024年最受欢迎的 19 个 VS Code 主题排行榜

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

GROBID库文献解析

1. 起因 由于某些原因需要在大量的文献中查找相关内容,手动实在是太慢了,所以选择了GROBID库进行文献批量解析 2. GROBID介绍 GROBID是一个机器学习库,用于将PDF等原始文档提取、解析和re-structuring为结构化的XML/TEI编码文档&#xff0…

pytorch yolov5+Deepsort实现目标检测和跟踪+单目测距

最近一直在整理单目测距的内容,想着检测单目测距都写完了,顺手也写个检测跟踪单目测距,算是总结下这部分内容吧,如果有错误,还请不吝赐教!! 参考文献: YOLOv5DeepSort实现目标跟踪 pytorch yolo…

郭天祥新概念51单片机(第四期读书笔记)

时钟周期、状态周期、机器周期、指令周期与晶振频率之间的关系 1、晶振频率与脉冲的关系 假设单片机的晶振频率是12MHz,那么它的一个脉冲为1/12微秒;晶振单位时间发出的脉冲则为: 12 ∗ 1 0 6 12*10^6 12∗106。 假设单片机的晶振频率是4MH…

Python 音频处理工具库之pydub使用详解

概要 在音频处理领域,Python pydub 库是一个功能强大且易于使用的工具,它可以帮助开发者处理音频文件的各种操作,如剪切、合并、转换格式、调整音量等。本文将详细介绍 pydub 库的功能、用法以及一些实际应用案例,帮助大家更好地了解和使用这个强大的音频处理工具。 什么是…

数据守护者:揭秘备份数据的终极策略

在数字化日益深入的今天,备份数据的重要性不言而喻。无论是个人用户还是企业机构,数据都是最宝贵的资产之一。一旦数据丢失或受损,可能会导致无法挽回的损失,甚至影响业务的正常运转。因此,备份数据成为了一种必要的安…

Linux中查看文件内容的命令

文章目录 一、七类常见的Linux的文件二、显示命令三、分页显示四、显示文件前后内容五、压缩、解压缩六、补充 一、七类常见的Linux的文件 字符文件类型-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。在find命令中,type 选项中用 f来表示d目录…

B站海外商业化探索之路

本期作者 背景 业务背景 B站(bilibili)出海以来,深耕内容生态和用户播放体验,业务发展逐渐步入正轨,用户体量稳中有升,目前在东南亚视频APP领域占领了一定的市场份额。 如何探索和实施商业化策略&#xff…

搜维尔科技:Manus Prime 3 Mocap数据手套,体验极致的每指触觉!

完全适用于VR虚拟现实场景 特斯拉也在使用的量子数据 Tesla 目前正在使用 MANUS Quantum Metagloves创建一个数据集,帮助他们训练 Tesla 机器人。 量子数据训练QUANTUM AI 我们以类似的方式使用 Quantum Metagloves 来生成一流的手指跟踪数据集,并将其…

GoogleNet神经网络介绍

一、简介 GoogleNet,也称为GoogLeNet,是谷歌工程师设计的一种深度神经网络结构,它在2014年的ImageNet图像识别挑战赛中取得了冠军。该神经网络的设计特点主要体现在其深度和宽度上,通过引入名为Inception的核心子网络结构&#x…

RWKV_Pytorch:支持多硬件适配的开源大语言模型推理框架

亲爱的技术探索者们,今天我要向大家隆重推荐一个在开源社区中崭露头角的项目——RWKV_Pytorch。这是一个基于Pytorch的RWKV大语言模型推理框架,它不仅具备高效的原生Pytorch实现,而且还扩展了对多种硬件的适配支持,让模型的部署和…

应用方案 | D358 高增益运算放大器,可以用于音频放大器、工业控制、DC 增益部件和所有常规运算放大电路

一、概述 D358 由两个独立的高增益运算放大器组成。可以是单电源工作,也可以是双电源工作,电源低功耗电流与电源电压大小无关。 应用范围包括音频放大器、工业控制、DC 增益部件和所有常规运算放大电路。 D358 采用 DIP8、SOP8、MSOP8 和 TSSOP8 的封装形…

振弦采集仪在地铁工程中的应用与地下结构监测

振弦采集仪在地铁工程中的应用与地下结构监测 随着城市化的快速发展,地铁成为现代城市交通体系的重要组成部分。地铁工程在建设过程中需要进行严格的地下结构监测,以确保施工过程的安全和工程质量的控制。振弦采集仪作为一种先进的监测设备,…

vim编辑器使用教程

前言 vim 是 Linux 系统内置的「文本编辑器」,用于查看或编辑文件的内容,学会使用 vim 编辑器,将在 Linux 终端中畅通无阻。 vim 的配置文件 1、 /etc/vim/vimrc 2、 ~/.vimrc 其中,第2个配置文件会优先加载,属于用…

网络套接字补充——TCP网络编程

六、TCP网络编程 6.1IP地址字符串和整数之间的转换接口 //字符串转整数接口 #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int inet_aton(const char *cp, struct in_addr *inp); int inet_pton(int af, const char *strptr, …

SWM341系列SDRAM应用

SWM341系列SDRAM应用 1、不同的时钟频率下&#xff0c;SDRAM的初始化参数设置 现象&#xff1a;驱屏应用&#xff0c;显示一段时间后出现卡住的现象 分析&#xff1a;SDRAM的初始 化参数优化 主频150Mhz,建议配置CASL 3&#xff0c;TRFC ≥8。 主频100Mhz,ClkDiv可配置为1…

Windows提权—数据库提权-mysql提权mssql提权Oracle数据库提权

目录 Windows 提权—数据库提权一、mysql提权1.1 udf提权1.1.2 操作方法一 、MSF自动化--UDF提权--漏洞利用1.1.3 操作方法二、 手工导出sqlmap中的dll1.1.4 操作方法三、 moon.php大马利用 1.2 mof提权1.3 启动项提权1.4 反弹shell 二、MSSQL提权MSSQL提权方法1.使用xp_cmdshe…

webGL开发:3D图形学概念大扫盲,恍然大悟。

一、3D图形学及常用概念 3D图形学是研究和开发用于创建、渲染和处理三维图形的学科领域。它涉及到计算机图形学、数学、物理学和计算机科学等多个学科的知识和技术。 在3D图形学中&#xff0c;主要关注的是如何使用计算机生成和呈现逼真的三维图像。这包括创建三维模型、应用材…

C++ | Leetcode C++题解之第1题两数之和

题目&#xff1a; C 题解&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hashtable;for (int i 0; i < nums.size(); i) {auto it hashtable.find(target - nums[i]);if (it …

HarmonyOS NEXT应用开发案例——阻塞事件冒泡

介绍 本示例主要介绍在点击事件中&#xff0c;子组件enabled属性设置为false的时候&#xff0c;如何解决点击子组件模块区域会触发父组件的点击事件问题&#xff1b;以及触摸事件中当子组件触发触摸事件的时候&#xff0c;父组件如果设置触摸事件的话&#xff0c;如何解决父组…