0
執行SQL語句時數據訪問對象類越來越SQLServerException
SQLServerException我得到以下execption:服務器無法恢復交易。 Desc:69d00000016。
我知道下面的DAO實現不正確。我想知道下面的代碼的正確實現是什麼,如果我的connFactory聲明爲靜態的事實可能會導致上述錯誤。
private static DbConnectionFactory connFactory;
protected myDAO() {
myDAO.connFactory = DbConnectionFactoryHome.getHome().lookupFactory("facName");
}
public myReturn myAccessMethod(final int cod) throws BaseException {
Connection conn = null;
CallableStatement stmt = null;
ResultSet resSet = null;
myReturn ret= null;
try {
conn = myDAO.connFactory.getConnection();
stmt = conn.prepareCall("{call name (2)}");
stmt.setInt(1, cod);
resSet = stmt.executeQuery();
if (resSet.next()) {
ret = new myReturn(resSet.getInt("someValue"));
}
}
catch (SQLException sqle) {
throw new myException(sqle.getMessage(), (Throwable)sqle);
}
finally {
try {
if (resSet != null) {
resSet.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
return ret;
}
我應該從connFactory刪除static修飾符或實施單,所以當構造函數被調用再次工廠沒有重現?
我明白,我需要調用在另一份聲明之前處理所有結果相同的連接,但在這種情況下,只能在同一個連接中調用一條語句。 – dinhokz
當你得到錯誤時,你可以發佈更多的堆棧跟蹤嗎? – Brod