当我在H2数据库中创建用于注册java函数的ALIAS时,它会给出找不到类的错误。我在tcp连接上运行h2数据库。
样品,
public class TimeFrame {
public static void main(String... args) throws Exception {
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:tcp://MYIP:9092/~/test", "sa", "");
Statement stat = conn.createStatement();
//Setup Table
stat.execute("DROP TABLE IF EXISTS timeframe");
stat.execute("CREATE TABLE timeframe (last_updated TIMESTAMP, ip int");
stat.execute("CREATE ALIAS IF NOT EXISTS SLIDEWINDOW FOR \"h2TimeFrame.TimeFrame.slidewindow\" ");
}
}
这是所有的pacakge名称:h2TimeFrame。测试,
从org.h2.samples包中获取示例类“Function”。如何在具有TCP连接的服务器上运行此类。改变
Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");
到
Connection conn = DriverManager.getConnection("jdbc:h2:tcp://IPADDRESS:9092/~/test", "sa", "");
答案 0 :(得分:1)
确保:
public
public
和static
该类必须在数据库引擎的类路径中可用
来自H2 Docs:
引用方法时,必须已经编译该类并将其包含在运行数据库的类路径中。仅支持静态Java方法;类和方法都必须是公共的