0
하나의 스레드가 JDBC를 사용하여 MySQL 데이터베이스에 영구적으로 연결되는 응용 프로그램을 작성 중이며 다른 스레드는이 연결을 사용하지 않습니다. 이 벌금단일 스레드 영구 연결을위한 JDBC Connection.isValid()?
import java.sql.Connection;
public class ConHolder {
private Connection con;
public Connection getConnection(int checkTimeout) {
if(!con.isValid(checkTimeout)) {
con.close();
con = createNewConnection();
}
return con;
}
private Connection createNewConnection() {
return /* a newly created connection */;
}
}
인가 :
내 생각이 같은 것입니다? 아니면 실제 연결 풀이 필요합니까?
단일 스레드 환경에서는 어떻게 가능합니까? – MinecraftShamrock
@MinecraftShamrock 'Race condition'은 여기서 사용하는 용어입니다. 타이밍 윈도우 문제입니다. 연결 풀을 사용하는 것이 좋습니다. – EJP
@EJP 당신은 isValid()와 새로운 연결 생성이 너무 오래 걸리기 때문에 연결 풀을 사용하여 여러 연결을 유지하는 것이 더 효율적이라는 것을 의미합니까? – MinecraftShamrock