问题是,在通过TCP运行服务器并创建别名函数SLIDEWINDOW之后 对于课程时间表,我称之为别名幻灯片窗口。但是从这个函数中,我必须查询表(任何表)以获得一些必要的信息。当我再次连接时,服务器和应用程序挂起。
CODE:
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\" ");
}
}
如果我想从SLIDEWINDOW函数访问读表,该怎么办?
public static void slideWindow(String ip){
...
Connection conn = DriverManager.getConnection ("jdbc:h2:tcp://MYIP:9092/~/test", "sa", "");
Statement stat = conn.createStatement();
res = stat.executeQuery("SELECT * FROM timeframe where ip = '" + ips + "' limit 1 ");
...
}
Q1。我可以用别名吗?
Q2。当我从H2服务器Web控制台或java应用程序调用别名“SELECT SLIDEWINDOW('127.0.0.1')”时应用程序挂起?
答案 0 :(得分:1)
事实证明。对于别名,java函数的第一个参数可以是“Connection”,它将把处理程序传递给已建立的连接。
<强> Q1。我可以用别名吗?
我不应该再从Alias建立与数据库的连接。
<强> Q2。当我从H2服务器Web控制台或java应用程序调用别名“SELECT SLIDEWINDOW('127.0.0.1')”时应用程序挂起?
我通过将“连接”作为第一个参数传递来解决它,并像之前一样休息。像
public static void slideWindow(Connection conn, String ip){
...
//Connection conn = DriverManager.getConnection ("jdbc:h2:tcp://MYIP:9092/~/test", "sa", "");
Statement stat = conn.createStatement();
res = stat.executeQuery("SELECT * FROM timeframe where ip = '" + ips + "' limit 1 ");
...
}