finally{
close();
}
}
你每次执行save都会关闭那些东西的。所以你的save应该类似下面这样
public void save(String TableName, String pFieldList, String pValueList) throws SQLException {
try {
getStatement(); // 既然每次都关闭,干次每次都重新获得就行了
sql = "insert into " + TableName + "(" + pFieldList + ")values(" + pValueList + ")";
getStatement();
sta.executeUpdate(sql);
} catch (RuntimeException re) {
throw re;
} finally {
close();
}
}
close();
}
}
你每次执行save都会关闭那些东西的。所以你的save应该类似下面这样
public void save(String TableName, String pFieldList, String pValueList) throws SQLException {
try {
getStatement(); // 既然每次都关闭,干次每次都重新获得就行了
sql = "insert into " + TableName + "(" + pFieldList + ")values(" + pValueList + ")";
getStatement();
sta.executeUpdate(sql);
} catch (RuntimeException re) {
throw re;
} finally {
close();
}
}
sql = "insert into " + TableName + "(" + pFieldList + ")values(" + pValueList + ")";
getStatement();回复上面的回复,为什么要取两次,我这个方法本来一次就可以打开的。
public void getStatement(){
if(sta==null ¦con==null){
try {
con=ds.getConnection();
sta=con.createStatement();
} catch (SQLException e) {
System.out.println("取得连接异常");
e.printStackTrace();
} 我发现当我自己关闭连接之后,在取Connection和Statement时都没有取到似的
if(con!=null){
con.close();
set=null;
}
}
这里你出现了一个笔误。}
if(con!=null){
con.close();
con=null;
}
}
比如if(con==null)我感觉con.close()不等NULL希望下面能给个答案现在在家,没法做实验。先给加50分,等看看其它回答,回者有份