亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在沒有任何基礎數據庫的情況下運行 SQL 表達式查詢

如何在沒有任何基礎數據庫的情況下運行 SQL 表達式查詢

慕少森 2022-05-21 20:30:42
我有一種情況,用戶以 SQL 格式輸入一些驗證輸入。此 SQL 查詢僅使用基本的 sql 日期函數,但不使用任何數據庫列。示例查詢:Select UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(CASE WHEN DAYOFMONTH(NOW()) <= 10THEN add_MONTHS(DATE_ADD(NOW(), (-1*DAYOFMONTH(NOW()))+1),-1)ELSE DATE_ADD(NOW(), (-1*DAYOFMONTH(NOW()))+1) END)當我將連接對象配置到某個真實數據庫時,我可以運行它。但我不覺得為了這個目的而使用數據庫和管理它是不值得的。有沒有一種方法可以在我的代碼中執行這些類型的查詢或查詢,例如 select date() from dual 等。
查看完整描述

2 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

坦率地說,如果您要進行 SQL 數據庫查詢……通常最好有一個數據庫來查詢:)

此外,如果您的目的是“測試”您的查詢......因為許多事情都是特定于數據庫的 - 通常最好有一個您希望測試的實際數據庫的實例。

話雖如此,在沒有底層數據庫的情況下執行 SQL 有很多選擇:

  • 您可以使用在線“fiddle”來測試 SQL 查詢,例如SQLFiddle.com

  • 對于單元測試,您將使用模擬框架。例如,對于 Java/JUnit,我會使用Mockito。

  • 如果我正在測試 Spring/Hibernate 數據訪問,我會使用內存中的輕量級H2數據庫。

真的有很多很多的選擇。這一切都取決于您的特定“用例”;你真正想要完成的事情。

PS:

我給出了一些 Java 示例。這是一篇關于模擬 Microsoft/EF 數據調用的文章:

https://entityframework.net/how-to-mock-data


查看完整回答
反對 回復 2022-05-21
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

不,sql 查詢需要針對數據庫引擎運行。

例如 select date() from dual 是一個 oracle 查詢;你不能對 mssql 或 mysql 運行它。



查看完整回答
反對 回復 2022-05-21
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號