Mybatis 查询TypeHandler使用,转译查询数据(逗号分隔转List)

创建自定义的Hanndler

/*** @Package: com.datalyg.common.core.handler* @ClassName: CommaSeparatedStringTypeHandler* @Author: dujiayu* @Description: 用于mybatis 解析逗号拼接字符串* @Date: 2024/5/29 10:03* @Version: 1.0*/
public class CommaSeparatedStringTypeHandler extends BaseTypeHandler<List<String>> {@Overridepublic void setNonNullParameter(PreparedStatement preparedStatement, int i, List<String> strings, JdbcType jdbcType)throws SQLException {if (strings != null) {preparedStatement.setString(i, String.join(",", strings));} else {preparedStatement.setNull(i, jdbcType.TYPE_CODE);}}@Overridepublic List<String> getNullableResult(ResultSet resultSet, String s) throws SQLException {String result = resultSet.getString(s);return convertStringToList(result);}@Overridepublic List<String> getNullableResult(ResultSet resultSet, int i) throws SQLException {String result = resultSet.getString(i);return convertStringToList(result);}@Overridepublic List<String> getNullableResult(CallableStatement callableStatement, int i) throws SQLException {String result = callableStatement.getString(i);return convertStringToList(result);}private List<String> convertStringToList(String input) {if (input == null || input.isEmpty()) {return null;}return Arrays.asList(input.split(","));}
}

配置YML文件

# Spring
spring:mybatis:type-handlers-package: com.datalyg.common.core.handler

Mybatis XML查询写法

    <resultMap id="VehicleInspectionBindConfigResultMap"type="com.datalyg.integration.vo.vehicle_inspection.VehicleInspectionInfoConfigItemVO"><result property="configId" column="id"/><result property="sort" column="sort"/><result property="inspectionMode" column="inspection_mode"/><result property="inspectionContent" column="inspection_content"/><result property="accessCriteria" column="access_criteria"/><result property="inspectionResult" column="inspection_result"/><result property="causeNonconformity" column="cause_nonconformity"/><result property="imageUrls" column="image_url" javaType="java.util.List" jdbcType="VARCHAR"typeHandler="com.datalyg.common.core.handler.CommaSeparatedStringTypeHandler"/></resultMap><select id="selectVehicleInspectionBindConfigList" resultMap="VehicleInspectionBindConfigResultMap">SELECT x.id,x.sort,x.inspection_mode,x.inspection_content,x.access_criteria,x.inspection_result,x.cause_nonconformity,x.image_urlFROM wh_vehicle_inspection_config_bind xWHERE x.vehicle_inspection_id = #{id}ORDER BY x.sort</select>

其中x.image_url为逗号拼接的字符串,转为List<String>集合返回

 <result property="imageUrls" column="image_url" javaType="java.util.List" jdbcType="VARCHAR"typeHandler="com.datalyg.common.core.handler.CommaSeparatedStringTypeHandler"/>

通过此方法与自定义的TypeHandler关联,实现转译操作

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

SAP Build引言

前言 SAP Build 似乎是一个整合了很多低代码或无代码产品的平台&#xff0c;最早的时候应该都是各自分开的几个产品&#xff0c;近年合并到一块上了SAP Build平台 现在看官网的介绍应该是有三四个产品被集成进来了&#xff0c;分别是SAP IRPA&#xff0c;SAP Workflow&#xf…

c# 输出二进制字符串

参考链接 C#二进制输出数据_c# 输出二进制 123.5的方法-CSDN博客https://blog.csdn.net/a497785609/article/details/4572112标准数字格式字符串 - .NET | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings#BFo…

linux 配置端口转发

当我们内网服务器没有公网IP&#xff0c;但需要将服务暴露出去时&#xff0c;可以采用如下方式&#xff0c;即通过跳板机&#xff08;带公网IP&#xff09;做转发&#xff0c;下面得例子演示将mysql 3306 服务暴露出去 192.168.10.25 运行mysql服务3306192.168.10.30跳板机&…

13、电科院FTU检测标准学习笔记-录波功能1

作者简介&#xff1a; 本人从事电力系统多年&#xff0c;岗位包含研发&#xff0c;测试&#xff0c;工程等&#xff0c;具有丰富的经验 在配电自动化验收测试以及电科院测试中&#xff0c;本人全程参与&#xff0c;积累了不少现场的经验 ———————————————————…

js高级—基础深入总结

文章目录 1. 数据类型1.1. 常见数据类型1.2.数据类型判断&#xff1a;1.3.underfined与null的区别1.4.什么时候给变量赋值为null1.5. 严格区别变量类型与数据类型&#xff1a; 2. 数据变量和内存2.1. 什么是数据2.2. 什么是内存2.3. 什么是变量2.4.内存、数据、变量三者关系问题…

【面试题】Node.js高频面试题

简述 Node. js 基础概念 &#xff1f; Node.js是一个基于Chrome V8引擎的JavaScript运行环境。它使得JavaScript可以在服务器端运行&#xff0c;从而进行网络编程&#xff0c;如构建Web服务器、处理网络请求等。Node.js采用事件驱动、非阻塞I/O模型&#xff0c;使其轻量且高效…

使用DMS肌肉刺激仪的时候肌肉肿了是怎么回事?

当使用DMS&#xff08;深层肌肉刺激仪&#xff09;时&#xff0c;肌肉出现肿胀可能有多种原因。以下是对可能原因的分点表示和归纳&#xff1a; DMS治疗过程中的刺激反应&#xff1a; DMS治疗过程中&#xff0c;肌肉受到强烈的刺激&#xff0c;可能会导致局部肌肉炎症、水肿和…

【科普向】【文末附gpt升级秘笈】人工智能领域的风云变幻:从OpenAI到Anthropic的人才流动与技术走向

人工智能领域的风云变幻&#xff1a;从OpenAI到Anthropic的人才流动与技术走向 摘要&#xff1a;人工智能领域的竞争日趋激烈&#xff0c;技术巨头间的人才流动和团队重组成为常态。本文通过分析OpenAI前首席安全研究员Jan Leike加入Anthropic公司这一事件&#xff0c;探讨人工…

vue el-table使用、el-popover关闭、el-image大图预览

1、html <el-table :data"list" :header-cell-style"{ background: #F7F8F9 }"><el-table-column type"index" width"100px" label"序号"></el-table-column><el-table-column prop"pic" l…

socks5 如何让dns不被污染

问题 发现firefox浏览器代理设置成socks5后&#xff0c;查看ip是成功了&#xff0c;但是谷歌等海外的还是无法正常访问。 原因 主要原因是socks5连接虽然是成功了&#xff0c;但是dns还是走国内的&#xff0c;国内的dns解析都被污染了导致没法正常访问 解决 把设置里的 使…

图数据集的加载

原文参考官方文档&#xff1a; https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html torch_geometric.loader 库中&#xff0c; 该库中包含了多种 图数据集的 加载方式&#xff0c; 这里主要介绍 DenseDataLoader and DataLoader 这两者之间的区别&#…

LeetCode 每日一题 数学篇 2894.分类求和并作差

给你两个正整数 n 和 m 。 现定义两个整数 num1 和 num2 &#xff0c;如下所示&#xff1a; num1&#xff1a;范围 [1, n] 内所有 无法被 m 整除 的整数之和。num2&#xff1a;范围 [1, n] 内所有 能够被 m 整除 的整数之和。 返回整数 num1 - num2 。 int differenceOfSum…

每日一题——力扣141. 环形链表(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 专业点评 时间复杂度分析 空间复杂度分析 总结 我要更强 方法2&#x…

【开发日记】ElementUI表单使用原生@submit提交表单数据

使用submit.native.prevent为el-form设置提交方法。 使用native-type为el-button设置原生按钮类型。 示例如下&#xff1a; <el-form class"search" submit.native.prevent"submitSearch"><div classsearch-item>人员ID :<el-input sizemi…

概率论与数理统计,重要知识点——全部公式总结

二、一维随机变量及其分布 五个分布参考另外一篇文章 四、随机变量的数字特征 大数定理以及中心极限定理 六、数理统计

QT事件----QPaintEvent绘图事件,QwheelEvent鼠标滚轮事件等; 用事件自定义按键;QT事件过滤器。

一、QT事件 1.1 QPaintEvent绘图事件 QPaintEvent 是 Qt 框架中一个重要的事件类,专门用于处理绘图事件。当 Qt 视图组件需要重绘自己的一部分时,就会产生 QPaintEvent 事件。这通常发生在以下几种情况:1. 窗口第一次显示时:当窗口或控件第一次出现在屏幕上时,系统会生成…

WSDM2024推荐系统和LLM相关论文整理(二)

WSDM 2024接收的论文已经公布&#xff0c;全部收录的论文可前往地址 网址&#xff1a;https://www.wsdm-conference.org/2024/accepted-papers/ 其中推荐系统相关论文三十余篇&#xff0c;下文列举了部分论文的标题以及摘要&#xff0c;更多内容欢迎关注公众号【深度学习推荐算…

RabbitMQ简单使用方法,以异步处理日志为例:

在RabbitMQ中异步记录日志的实现可以分为生产者将日志消息发送到队列&#xff0c;以及消费者从队列中取出消息并记录日志。当搭建好消息队列后&#xff0c;需要确保消费者持续运行&#xff0c;以便随时处理新进入的日志消息。 步骤一&#xff1a;设置生产者发送日志消息到Rabb…

vscode操作git详解

基于 VScode 的 git 详细使用指南【保姆级&#xff01;建议收藏&#xff01;】_vscode git-CSDN博客

Stable Diffusion AI绘画:从创意词汇到艺术图画的魔法之旅

文章目录 一、Stable Diffusion的工作原理二、从提示词到模型出图的过程三、Stable Diffusion在艺术创作中的应用《Stable Diffusion AI绘画从提示词到模型出图》内容简介作者简介楚天 目录前言/序言本书特色特别提示 获取方式 在科技的飞速发展中&#xff0c;Stable Diffusion…