有没有人试图用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