h2数据库模拟mysql进行单元测试遇到的问题

devtools/2024/10/25 0:48:52/

使用h2数据库进行springboot的单元测试的时候出现的几个问题

1.h2数据库插入json数据的时候,默认是json String的形式(josn数据入库的时候有转义字符),导致查询出来的json数据在进行处理的时候无法解析成jsonNode

操作:

单元测试插入数据的时候,在json对应的字段最后加上FORMAT JSON

即 insert into tabelA(json字段,string字段) values(“{‘A":“B”}’ FORMAT JSON, ”string数据段“)即可正确插入json数据(入库的时候无转义符)

2.h2数据库不支持mysql的批量更新操作,也不支持mysql的replace into语句。

--批量更新(H2不支持)<update id="increaseBatch"  parameterType="java.util.List"><foreach collection="list" item="item" index="index" open="" close="" separator=";">update product<set>quantity = quantity + #{item.updateQuantity}, modify_time = #{item.modifyTime}</set>where id = #{item.productId}</foreach></update>--批量插入(H2支持)
<insert id="insertItems" keyProperty="id" parameterType="java.util.List" useGeneratedKeys="true"><selectKey keyProperty="id" order="AFTER" resultType="long">SELECT LAST_INSERT_ID()</selectKey>INSERT INTO bill_item(bill_id,product_id,product_name,product_quantity,product_quantity_after,product_price,product_amount)VALUES<foreach close="" collection="list" index="index" item="item" open="" separator=",">(#{item.billId},#{item.productId},#{item.productName},#{item.productQuantity},#{item.productQuantityAfter},#{item.productPrice},#{item.productAmount})</foreach></insert>

3.mysql中的json_contain等sql函数,在h2数据库中也是没有的,需要自己定义。


http://www.ppmy.cn/devtools/128551.html

相关文章

Java-抽象类和接口

一、抽象类 ① 抽象类的概念 在上一篇文章中&#xff0c;我们学习了" 多态 "&#xff0c;它允许在相同方法的情况下处理不同的对象&#xff0c;即通过父类引用指向子类对象&#xff0c;并调用相同的方法&#xff0c;通过不同的子类调用该方法&#xff0c;进而产生不…

将jupyter中ipynb文件转成html文件

在VScode中使用jupyter&#xff08;丘比特&#xff09;时&#xff0c;将ipynb&#xff08;我python牛比&#xff09;后缀文件转成html时&#xff0c;总是报错&#xff1a; 那么可以就在需要转换的ipynb文件中&#xff0c;运行下面的代码&#xff0c;将“your_notebook”替换成同…

零基础Java第九期:一维数组(二)和二维数组

目录 一、数组的练习 1.1. 顺序表查找 1.2. 二分查找 1.3. 冒泡排序 二、二维数组 2.1. 二维数组的性质 2.2. 不规则二维数组 一、数组的练习 1.1. 顺序表查找 题目描述&#xff1a;给定一个数组, 再给定一个元素, 找出该元素在数组中的位置。 利用for循环去遍历数组&am…

未来医疗:大语言模型如何改变临床实践、研究和教育|文献精析·24-10-23

小罗碎碎念 这篇文章探讨了大型语言模型在医学领域的潜在应用和挑战&#xff0c;并讨论了它们在临床实践、医学研究和医学教育中的未来发展。 姓名单位名称&#xff08;中文&#xff09;Jan Clusmann德国德累斯顿工业大学埃尔朗根弗雷斯尼乌斯中心数字化健康研究所Jakob Nikola…

GitLab CVE-2024-6446、CVE-2024-6685 漏洞解决方案

极狐GitLab 近日发布安全补丁版本17.3.2, 17.2.5, 17.1.7&#xff0c;修复了17个安全漏洞&#xff0c;本分分享 CVE-2024-6446、CVE-2024-6685 两个漏洞详情及解决方案。 极狐GitLab 正式推出面向 GitLab 老旧版本免费用户的专业升级服务&#xff0c;为 GitLab 老旧版本进行专…

力扣动态规划基础版(斐波那契类型)

70. 爬楼梯https://leetcode.cn/problems/climbing-stairs/ 70.爬楼梯 方法一 动态规划 考虑转移方程和边界条件&#xff1a; f&#xff08;x&#xff09; f&#xff08;x -1&#xff09; f&#xff08;x - 2&#xff09;;f&#xff08;1&#xff09; 1&#xff1b;f&…

数据结构 —— 链式二叉树(C语言讲解)

目录 0.前言 1.链式存储的二叉树 2.二叉树的遍历 二叉树的前、中、后序遍历 前序遍历 中序遍历 后序遍历 二叉树的层序遍历 3.二叉树的其他操作 二叉树的结点个数 二叉树叶子结点个数 二叉树第k层结点个数 二叉树查找值为x的节点 二叉树的高度 判断二叉树是否是…

【mysql进阶】2-4. mysql 系统库

mysql System Schema (mysql系统库) Mysql Schema是⼀个系统库&#xff0c;表中存储了MySQL服务器运⾏时所需的信息。⼴义上&#xff0c;mysqlschema包含存储数据库对象元数据的数据字典和⽤于其他操作⽬的的系统表。数据字典表和系统表位于数据⽬录下⼀个名为 mysql.ibd 的表…