hsql mybatis 表不存在_单元测试MyBatis与HSQL而不是Oracle

我想使用HSQL内存数据库对MyBatis持久层进行单元测试.真正的应用程序使用Oracle数据库.这工作正常,我们开始为id列添加自动递增的数字. Oracle需要使用序列来获取递增的数字,因此在Oracle数据库中创建了一个名为basis_seq的序列.在我的MyBatis mapper

XML文件中我有这个:

SELECT basis_seq.NEXTVAL FROM DUAL

insert into basis

(id, name)

values

(#{id}, #{name})

当我运行应用程序但是单元测试发生错误时,这可以工作:

org.springframework.jdbc.BadSqlGrammarException: Error selecting key

or setting result to parameter object. Cause:

java.sql.SQLSyntaxErrorException: user lacks privilege or object not

found: DUAL ; bad SQL grammar []; nested exception is

java.sql.SQLSyntaxErrorException: user lacks privilege or object not

found: DUAL

据了解,“DUAL”是甲骨文中存储序列的某种虚拟表,我的测试数据库中没有.如果我删除< selectKey> -tag单元测试工作(因为HSQL可以自动生成标记为身份的列的id),而不是真正的应用程序.一个解决方法是为单位测试创建单独的MyBatis映射程序XML文件,而不使用< selectKey> -tag,但这是不希望的,因为我想测试真正的配置.

有没有办法在HSQL中创建和使用序列,也可能有一些MyBatis的解决方法?或者我应该使用另一个数据库进行单元测试,如H2?

我用:

> Spring 3.0.5

> HSQL 2.2.4

> MyBatis 3.0.5

更新:

从fredt得到答案后,我是如何编辑我的Spring配置的:

在我定义了我的数据源之前:

现在我这样做:

destroy-method="close">

另外,在schema.sql中我需要创建序列:

CREATE SEQUENCE BASIS_SEQ START WITH 1000 INCREMENT BY 1;

CREATE SEQUENCE OTHER_SEQ START WITH 1000 INCREMENT BY 1;

(如果在单元测试期间多次运行此脚本,请记住添加下拉序列BASIS_SEQ(如果存在);在schema.sql的顶部)

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

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

相关文章

AjaxToolKit学习笔记 之 ModalPopupExtender

1.控件功能描述 以模式窗口的方式弹出客户或服务器控件,以突出显示! 弹出的一般是DIV或PANEL. 2.控件属性描述 TargetControlID : 控制是否弹出的控件的ID. PopupDragHandleControlID : 允许拖拽的控件的ID. PopupControlID: 指定要弹出的控件的ID. BackgroundCssClass: 指定弹…

WIN10中DOCKER的安装与使用

WIN10中DOCKER的安装与使用 WIN10中DOCKER的安装与使用 1.docker的安装 环境准备 下载安装 2.docker的入门 开始使用 3.docker的常用配置 在PowerShell中设置 tab键自动补全&#xff08;其实用的都是cmd.exe&#xff09; Settings 4.用Dockerfile定义一个镜像 新建目录文件 构建…

单片机涡轮流量传感器_关于涡轮流量计传感器的维护保养

涡轮流量计是一种精密流量测量仪表&#xff0c;与相应的流量积算仪表配套可用于测量液体的流量和总量。广泛用于石油、化工、冶金、科研等领域的计量、控制系统。配备有卫生接头的涡轮流量计传感器可以应用于制药、食品等行业。 涡轮流量计传感器部分的维护保养要注意以下几点&…

孩子在华艺舞校的画画投稿-天女之梦

转载于:https://www.cnblogs.com/speeding/archive/2010/05/24/2623966.html

controller控制器怎么写_I2C控制器编程_框架

来源&#xff1a;百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)作者&#xff1a;韦东山本文字数&#xff1a;3776&#xff0c;阅读时长&#xff1a;5分钟我们现在来讲I2C控制器怎么写&#xff0c;它是I2C程序中最核心的地方&#xff0c;我们要先构造几个结构…

关于数据库主键和外键

一、什么是主键、外键&#xff1a; 关系型数据库中的一条记录中有若干个属性&#xff0c;若其中某一个属性组(注意是组)能唯一标识一条记录&#xff0c;该属性组就可以成为一个主键 比如 学生表(学号&#xff0c;姓名&#xff0c;性别&#xff0c;班级) 其中每个学生的学号…

sql server charindex函数和patindex函数详解(转)

charindex和patindex函数常常用来在一段字符中搜索字符或字符串。假如被搜索的字符中包含有要搜索的字符&#xff0c;那么这两个函数返回一个非零的整数&#xff0c;这个整数是要搜索的字符在被搜索的字符中的开始位数。patindex函数支持使用通配符来进行搜索&#xff0c;然而c…

Win10最新批量激活

W269N-WFGWX-YVC9B-4J6C9-T83GX 先来说下使用激活码使用方法&#xff1a; 1、同时按下Win键X&#xff0c;然后选择命令提示符&#xff08;管理员&#xff09; 2、在命令提示符中依次输入&#xff1a; slmgr.vbs /upk &#xff08;此时弹出窗口显未“已成功卸载了产品密钥”…

dosbox 伪指令dd为什么会报错_什么是SQL函数?为什么使用SQL函数可能会带来问题?...

本文已收录GitHub&#xff0c;更有互联网大厂面试真题&#xff0c;面试攻略&#xff0c;高效学习资料等函数在计算机语言的使用中贯穿始终&#xff0c;在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作&#xff0c;比如求某列数据的平均值&#xff0c;或者求字符串的长…

最新webshell大合集

收集与整理了各种webshell&#xff0c;以便在日后的项目中做Webshell检测训练。 https://github.com/tennc/webshell 各种webshell集合 https://github.com/ysrc/webshell-sample webshell样本 https://github.com/xl7dev/WebShell Webshell && Backdoor Collection…

JavaScript 参考教程(二)——转载

对象化编程 JavaScript 是使用“对象化编程”的&#xff0c;或者叫“面向对象编程”的。所谓“对象化编程”&#xff0c;意思是把 JavaScript 能涉及的范围划分成大大小小的对象&#xff0c;对象下面还继续划分对象直至非常详细为止&#xff0c;所有的编程都以对象为出发点&…

centos7 docker删除端口映射_容器Docker详解

概述基本概念Docker是一个开源的应用容器引擎&#xff0c;基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&a…

深入解析结构化异常处理(SEH) - by Matt Pietrek

尽管以前写过一篇SEH相关的文章《关于SEH的简单总结》&#xff0c; 但那真的只是皮毛&#xff0c;一直对Windows异常处理的原理似懂非懂&#xff0c; 看了下面的文章 &#xff0c;一切都豁然开朗. 1997年文章&#xff0c;Windows技术的根一直没变&#xff1a;http://www.micr…

IE Mobie6清除浮动

看来已经有很多中window的毒了&#xff0c;平时操作系统是window&#xff0c;现在还好多人用window mobie&#xff0c;看来已经习惯了window的使用方式。做前端开发&#xff0c;有个IE 6已经够受的了&#xff0c;没想到半路杀出个IE Mobie。期待IE6被埋葬的一天。 做几个页面&a…

@requestbody 接受int参数_C++之指针作为函数参数

C 允许您传递指针给函数&#xff0c;只需要简单地声明函数参数为指针类型即可。下面的实例中&#xff0c;我们传递一个无符号的 long 型指针给函数&#xff0c;并在函数内改变这个值&#xff1a;#include <iostream> #include <ctime>using namespace std; void ge…

hash函数查找和ASL计算

Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找时间 关键字序列&#xff1a;&#xff08;7、8、30、11、18、9、14&#xff09; 散列函数&#xff1a; H(Key) (key x 3) MOD 7 装载因子&#xff1a; 0.7 处理冲突&#xff1a;线性探测再散列法 查…

Jquery CheckBox全选方法

方法如下&#xff1a; function CheckAll(val) {$("input[namechkJob]").each(function() {this.checked val;});$("#chkAll").attr("checked", val);//设定全选按钮状态}val 该参数传递的是全选按钮的选择状态 namechkJob 这个为列表中的check…

c++怎么将文件中的数据读出并赋值给字符串_web前端开发过程中如何写JavaScript程序?...

script标签使用< script >< /script >src : 外联script 标签(立即调用,不能在该标签内写代码)< script >// 在标签内书写内容< /script >< script srcjavascript.js >// 这里面不能写任何内容< /script >一切准备就绪&#xff0c;让我们从…

简美电子相册

下载地址&#xff1a;微客互联 转载于:https://www.cnblogs.com/Witkey/archive/2010/06/10/1755755.html

强制进程结束(内核函数)

windows给我们结束进程的函数是PsTerminateSystemThread function&#xff0c;通过反汇编我们可以看到PsTerminateSystemThread 调用了未导出的函数PspTerminateThreadByPointer &#xff0c;然后这个函数又调用了APC和PspExitThread函数对进程实现强制结束。