finally 블록을 닫지 않아도 연결이 자동으로 닫힙니다.SQL 오류 : 닫힌 연결
public String look(long id, String codeName, Connection conn) throws SQLException
{
try
{
StringBuffer sel = new StringBuffer().append(property);
stmt = conn.prepareCall(sel.toString()); /* fileCode.java:194 */
stmt.setString(1, nameC);
stmt.setLong(2, valueI);
stmt.registerOutParameter(3, oracle.jdbc.OracleTypes.VARCHAR);
stmt.execute();
return stmt.getString(3);
}
catch (SQLException e)
{
if (e.getMessage().toUpperCase().contains("NO DATA"))
{
return "Value not found";
}
throw e;
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
System.out.println(" CONNNNNN closed ? : " + conn.isClosed());
}
}
메소드 호출은 볼 방법,
public class Verfication
{
public void verify (, , , , , , ,conn)
{
try
{
if (x ==1)
{
ManageCode mCode = new ManageCode();
System.out.println("----- 1st Call -----");
String mCodeBlock = mCode.look(, , conn);
String cCodeBlocked = checkBackup (, , , , , , , ,);
/* connection is closed in this part */
System.out.println("----- 2nd Call -----");
String nCodeBlock = mCode.look (, , conn);
}
}catch( )
{
}
}
}
내가 아래에 언급 한 바와 같이, 내가 연결에 문제가 있는지 확실하지 않다 출력을받을 수 있나요? 나는 또한 시스템 아웃을 추가했다.
출력 :
----- 1st Call -----
CONNNNNN closed ? : false
----- 2nd Call -----
CONNNNNN closed ? : true
SEVERE: Line:71 CodePointChecker ERROR: java.sql.SQLException: Closed Connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
at oracle.jdbc.driver.PhysicalConnection.prepareCall(PhysicalConnection.java:839)
at oracle.jdbc.driver.PhysicalConnection.prepareCall(PhysicalConnection.java:802)
at com.XXXXXXXXXXXXXXX.code.fileCode.look(fileCode.java:194)
또한 checkBackup 메소드의 코드를 게시하십시오. –
JDBC 연결 문자열도 게시 할 수 있습니까? –