QueryRunner 클래스가있는 DbUtils 라이브러리를 사용하여 쿼리를 실행합니다. 내 DbUtils docs의 underestanding에서 나는 연결을 닫는 것에 대해 걱정할 필요가 없습니다. 그러나 어떤 이유로 자동 또는 수동으로 연결을 닫지 않습니다. 여기 내 코드는 다음과 같습니다.DbUtils 사용 QueryRunner가 데이터베이스 연결을 닫지 않음
public static DataSource createDataSource() {
BasicDataSource d = new BasicDataSource();
d.setDriverClassName(Globals.getInstance().getKonfiguracija().dajPostavku("driver"));
d.setUsername(Globals.getInstance().getKonfiguracija().dajPostavku("dbUsername"));
d.setPassword(Globals.getInstance().getKonfiguracija().dajPostavku("dbPassword"));
d.setUrl(Globals.getInstance().getKonfiguracija().dajPostavku("serverDatabase"));
return d;
}
public static void insertSQL(String sql)
{
DataSource dataSource = createDataSource();
QueryRunner qr = new QueryRunner(dataSource);
try {
int inserts = qr.update(sql);
qr.getDataSource().getConnection().close();
} catch (SQLException ex) {
Logger.getLogger(DBController.class.getName()).log(Level.SEVERE, null, ex);
}
}
주기적으로 insertSQL 메서드를 호출하는 스레드가있어서 "너무 많은 연결"오류가 발생합니다. Im Tomcat과 데이터베이스의 최신 버전을 사용하여 MYSQL입니다.
도움이 될 수도 있습니다. 아플 시도해보십시오. – Selfcoded