日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時(shí)間:2023/11/30 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hsql mybatis 表不存在_单元测试MyBatis与HSQL而不是Oracle 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我想使用HSQL內(nèi)存數(shù)據(jù)庫(kù)對(duì)MyBatis持久層進(jìn)行單元測(cè)試.真正的應(yīng)用程序使用Oracle數(shù)據(jù)庫(kù).這工作正常,我們開(kāi)始為id列添加自動(dòng)遞增的數(shù)字. Oracle需要使用序列來(lái)獲取遞增的數(shù)字,因此在Oracle數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)名為basis_seq的序列.在我的MyBatis mapper

XML文件中我有這個(gè):

SELECT basis_seq.NEXTVAL FROM DUAL

insert into basis

(id, name)

values

(#{id}, #{name})

當(dāng)我運(yùn)行應(yīng)用程序但是單元測(cè)試發(fā)生錯(cuò)誤時(shí),這可以工作:

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

據(jù)了解,“DUAL”是甲骨文中存儲(chǔ)序列的某種虛擬表,我的測(cè)試數(shù)據(jù)庫(kù)中沒(méi)有.如果我刪除< selectKey> -tag單元測(cè)試工作(因?yàn)镠SQL可以自動(dòng)生成標(biāo)記為身份的列的id),而不是真正的應(yīng)用程序.一個(gè)解決方法是為單位測(cè)試創(chuàng)建單獨(dú)的MyBatis映射程序XML文件,而不使用< selectKey> -tag,但這是不希望的,因?yàn)槲蚁霚y(cè)試真正的配置.

有沒(méi)有辦法在HSQL中創(chuàng)建和使用序列,也可能有一些MyBatis的解決方法?或者我應(yīng)該使用另一個(gè)數(shù)據(jù)庫(kù)進(jìn)行單元測(cè)試,如H2?

我用:

> Spring 3.0.5

> HSQL 2.2.4

> MyBatis 3.0.5

更新:

從fredt得到答案后,我是如何編輯我的Spring配置的:

在我定義了我的數(shù)據(jù)源之前:

現(xiàn)在我這樣做:

destroy-method="close">

另外,在schema.sql中我需要?jiǎng)?chuàng)建序列:

CREATE SEQUENCE BASIS_SEQ START WITH 1000 INCREMENT BY 1;

CREATE SEQUENCE OTHER_SEQ START WITH 1000 INCREMENT BY 1;

(如果在單元測(cè)試期間多次運(yùn)行此腳本,請(qǐng)記住添加下拉序列BASIS_SEQ(如果存在);在schema.sql的頂部)

總結(jié)

以上是生活随笔為你收集整理的hsql mybatis 表不存在_单元测试MyBatis与HSQL而不是Oracle的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。