全部。
我英语说得不好。。对不起。
我在 java 程序中遇到了 DB Connection 的问题。
第一个代码是为每个查询获取每个连接。
第二个代码只是为每个查询使用一个连接。
这是示例代码。
示例 #1
public void func() {
Connection conn = null;
try {
conn = getConnection();
//Just example..
//Here, it is assumed that it has been successfully executed.
String value1 = selectValue1(conn);
conn.close();
conn = getConnection();
String value2 = selectValue(conn);
conn.close();
} catch(Exception e) {
....
} finally {
try {
if (conn != null)
conn.close();
} catch(Exception e2) { }
}
}
示例 #2
public void func() {
Connection conn = null;
try {
conn = getConnection();
//Just example..
//Here, it is assumed that it has been successfully executed.
String value1 = selectValue1(conn);
String value2 = selectValue2(conn);
} catch(Exception e) {
....
} finally {
try {
if (conn != null)
conn.close();
} catch(Exception e) { }
}
}
两者都在功能上执行。
但是,当我进行性能测试时,经常会出现问题。(大约有 10 个类执行类似的代码。)
**java.sql.SQLException: Connection does not exist**
at Altibase.jdbc.driver.ex.exception(ex.java:52) ~[Altibase.jar:na]
at Altibase.jdbc.driver.ex.exception(ex.java:37) ~[Altibase.jar:na]
at Altibase.jdbc.driver.cmnTCP.send(cmnTCP.java:318) ~[Altibase.jar:na]
at Altibase.jdbc.driver.cmp.flush(cmp.java:252) ~[Altibase.jar:na]
at Altibase.jdbc.driver.cmp.writePrepareProtocol(cmp.java:1590) ~[Altibase.jar:na]
at Altibase.jdbc.driver.ABConnection.prepare(ABConnection.java:1002) ~[Altibase.jar:na]
at Altibase.jdbc.driver.ABPreparedStatement.<init>(ABPreparedStatement.java:62) ~[Altibase.jar:na]
at Altibase.jdbc.driver.ABConnection.prepareStatement(ABConnection.java:1060) ~[Altibase.jar:na]
at Altibase.jdbc.driver.ABConnection.prepareStatement(ABConnection.java:1055) ~[Altibase.jar:na]
at Altibase.jdbc.driver.ABConnection.prepareStatement(ABConnection.java:1033) ~[Altibase.jar:na]
at net.herit.ini.dbpool.PooledConnection.prepareStatement(PooledConnection.java:138) ~[slee.jar:na]
我该如何解决这个问题?或有什么区别?&-|
谢谢。