有沒有人試圖用H2數據庫創建存儲過程?如何使用H2數據庫創建存儲過程?
回答
要訪問Java函數中的數據庫,您確實需要連接。對於H2,有兩種方法可以獲得此類連接:
解決方案1 :如果Java函數的第一個參數是java.sql.Connection
,則數據庫提供連接。對於SQL,這是一個'隱藏'參數,這意味着你不能也不需要明確設置它。記錄如下:User-Defined Functions and Stored Procedures,「需要連接的功能」。例如:
CREATE ALIAS QUERY AS $$
ResultSet query(Connection conn, String sql) throws SQLException {
return conn.createStatement().executeQuery(sql);
} $$;
CALL QUERY('SELECT * FROM DUAL');
解決方案2:對於Apache Derby和甲骨文的兼容性,您可以打開使用DriverManager.getConnection("jdbc:default:connection")
的Java函數中的一個新的連接。此功能在H2版本1.3.151及更新的版本中可用,並且默認情況下它是禁用的。要啓用它,請附加;DEFAULT_CONNECTION=TRUE
to the database URL。這是一個有問題的功能,因爲如果Oracle驅動程序在H2驅動程序之前加載,Oracle JDBC驅動程序將嘗試解析此數據庫URL。因此,如果加載Oracle驅動程序,基本上不能使用該功能(我認爲這是Oracle驅動程序中的一個錯誤)。
當你完成它們時總是關閉你的語句...聲明s = conn.createStatement();嘗試{返回s.executeQuery(sql);}終於{s.close();} – jcalfee314 2013-08-05 19:20:51
對於H2(這是關於H2),沒關係,如果你關閉該聲明與否。但是,一般來說,聲明應該被關閉。 – 2013-08-05 19:47:23
@Thomas Mueller你的文檔例子很差,你會把一個CRUD例子 – Dunken 2016-03-29 10:47:50
- 1. H2數據庫中的存儲過程
- 2. 使用存儲過程/函數創建數據庫,表,過程?
- 3. 如何創建存儲過程來創建數據庫
- 4. 如何先用存儲過程創建asp.net MVC數據庫?
- 5. 存儲過程中的H2數據庫選擇數據
- 6. 使用h2數據庫創建表格
- 7. 可以使用存儲過程創建數據庫嗎?
- 8. 如何在存儲過程中使用模式創建新的數據庫?
- 9. 在H2數據庫中寫入複雜的存儲過程
- 10. 如何使用H2內存數據庫保存數據?
- 11. 通過存儲過程創建數據庫的副本
- 12. 如何用hibernate創建存儲過程?
- 13. 創建通用存儲庫從存儲過程返回數據與EFCore
- 14. 數據庫存儲過程
- 15. H2數據庫存儲在哪裏?
- 16. H2數據庫存儲容量
- 17. 如何在H2中創建過程
- 18. 使用存儲過程創建存儲過程
- 19. 如何使用phonegap創建數據庫以存儲日誌?
- 20. 如何用參數創建動態數據窗口使用存儲過程
- 21. 如何從存儲過程中創建存儲過程
- 22. 如何使用sqlserver中的參數創建存儲過程
- 23. 如何使用PyOrient在OrientDB中創建函數(存儲過程)?
- 24. 如何在存儲過程中使用RAISERROR創建參數?
- 25. 如何使用Nvarchar(max)參數創建CLR存儲過程?
- 26. ASP.NET - 使用Oracle 9i數據庫/數據庫存儲過程
- 27. 插入存儲過程不創建數據庫記錄
- 28. 重新創建mysql數據庫結構和存儲過程
- 29. 在另一個數據庫中創建存儲過程
- 30. 在MySQL數據庫中再次創建存儲過程
我使用Java函數的問題與[this one]不同(http://stackoverflow.com/questions/3098905/how-to-create-stored-procedure-using-h2-database)。我不知道如何在這樣的函數中訪問表(創建連接在那裏沒有意義,是嗎?)? – maaartinus 2011-03-18 12:06:31
查看手冊總是很有幫助:[H2:用戶定義的函數和存儲過程](http://www.h2database.com/html/features.html#user_defined_functions) – NullUserException 2010-10-07 03:52:48