java - H2 数据库中的存储过程

标签 java stored-procedures h2

我是数据库新手,最近开始为H2数据库编写测试用例。 我想知道如何在 Eclipse 中测试存储过程。我看到了以下内容:

http://www.h2database.com/html/features.html#user_defined_functions

How to CREATE PROCEDURE in H2

h2数据库链接中给出的示例代码,

"CREATE ALIAS NEXT_PRIME AS $$
String nextPrime(String value) {
    return new BigInteger(value).nextProbablePrime().toString();
}
$$;
" 
  • 应该在哪里声明?如何运行?

PS - 我有 H2 JAR 文件并正在测试它。

如果有人能告诉我如何用 Java 为 H2 编写一个简单的存储过程,那将有很大帮助。

在 H2 中是否有以下等价物?

“开始 dbms_output”?

谢谢。

最佳答案

H2 数据库中没有存储过程和 sql 用户定义函数,而是我们使用 java 方法并创建别名来引用它。我们可以使用别名调用该方法。

下面是一个简单的例子:**

DROP ALIAS IF EXISTS MYFUNCTION;
CREATE ALIAS MYFUNCTION AS $$
String getTableContent(java.sql.Connection con) throws Exception {
    String resultValue=null;
    java.sql.ResultSet rs = con.createStatement().executeQuery(
    " SELECT * FROM TABLE_NAME");
       while(rs.next())
       {
        resultValue=rs.getString(1);
       }
    return resultValue;
}
$$;

关于java - H2 数据库中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718865/

相关文章:

sql - 直接执行语句和从存储过程执行语句时的执行计划不同

sql - 甲骨文基本问题

openshift - 我可以在 OpenShift 上启用 HTTP/2 吗?

java - Java 中的字符串

java - Scala Spark 配置/环境故障排除

java - 在 HashMap 中声明 lambda 的正确方法

java - 如何在 h2 上运行的 MySQL 查询中屏蔽掉 "USE INDEX"

Java使用对象来保存状态似乎不起作用

sql - 在 SQL Server 中从日期时间添加或减去时间

spring - Hibernate 中的 Java 8 LocalDate 错误地映射到 TIMESTAMP