1
저는 Java에서 Datatbase를 사용하여 새로운 기능을 제공하고 있습니다. 올바른 방법으로 작업하고 있는지 궁금해하고 있습니다. 내 코드에서 모든 DB 인터페이스는 DataAccess라는 코드 내에서 수행됩니다.DB에서 업데이트/쿼리하는 정확한 방법
isValidOperator()
함수를 입력하기 전에 연결 (connBlng
)을 열었습니다.
올바른 방법일까요? 또는 DB에 액세스해야 할 때마다 연결을 열고 닫아야합니까?
if(da.StartBlngConnection() == null)
return "ERROR"
DataAccess da = new DataAccess();
da.isValidOperator("123")
//this is code from DataAccess Class
public Boolean isValidOperator(String dn) {
System.out.println(npgReqID + " - " + LOG_TAG + "inside isValidOperator : " + dn);
PreparedStatement prepStmt = null;
ResultSet queryResult = null;
try{
prepStmt = connBlng.prepareStatement("select network_id, network_identifier from operators where network_identifier = ?");
prepStmt.setString(1, dn);
queryResult = prepStmt.executeQuery();
if (queryResult.next()) {
return true;
}
}catch(Exception e){
System.out.println(npgReqID + " - " + e);
DBLog("", new Date(),"" , npgReqID , "" ,"" , MakeSureNotOutOfRange(GetStackTrace(e),4000), "" , "");
return false;
} finally{
closeStatmentandRS(queryResult, PreparedStatement);
}
return false;
}
finally 블록에서는'queryResult','PreparedStatement' 만 닫습니다. connBlng (연결)를 닫아야합니다. 열려있는 연결 수가 지정된 제한을 초과하지 않으면 닫아야합니다. 또는 어떤 종류의 연결 풀링을 사용해야합니다. – user75ponic
프로그램 시작 부분에 하나의 연결을 열었습니다. 끝에서 닫혀 있는지 확인합니다. – susparsy
프로그램 실행 후 '연결'이 닫히고 있으면 정상입니다. – user75ponic