연결 풀을 구현합니까? PostgreSQL JDBC 드라이버는 스레드로부터 안전하지만 MYSQL에서는 잘 모르겠습니다.Mysqldatasource 스레드가 안전합니까?
DB 연결을 처리하기위한 정적 객체를 만들고 있습니다. package com.amzi.DataAccess;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
public class DBUtil {
private static MysqlDataSource dataSource = null;
public static MysqlDataSource getDataSource() {
if (dataSource == null) {
dataSource = new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword(""); // Put your password here
dataSource.setUrl("jdbc:mysql://localhost:3306/user_device_table");
}
return dataSource;
}
}
그리고 또 다른 클래스에서는 레코드가 있는지 확인하기 위해 연결을 만듭니다. 연결이 완료되면 닫습니다.
public boolean ValidateLogin(User user) {
boolean status = false;
PreparedStatement ps = null;
ResultSet rs = null;
Connection connection = null;
try {
connection = DBUtil.getDataSource().getConnection();
ps = connection.prepareStatement("select * from users where user_name=? and password=?");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
rs = ps.executeQuery();
status = rs.next();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return status;
}
대부분의 경우 (이전 버전의 Tomcat을 사용하지 않는 경우) 데이터 소스 설정을 위해 응용 프로그램 서버의 구성을 사용해야합니다. 이것은 항상 연결 풀 구성을 수반합니다. –
@SteveC는 연결 풀이 필요합니까? 내가 3 개의 다른 랩톱을 모두 localhost에서 실행 중이지만 모두 동일한 원격 db에 연결되어 있다고 가정 해보십시오. 이 경우 수영장이 필요합니까? –
10, 100 또는 1000 명의 사용자가있을 수 있도록 확장해야하는 경우 연결 풀을 사용하면 많은 도움이됩니다. –