public class Database {
private String ric;
private String volume;
private String _url;
private String _userId;
private String _password;
private String _dbLib;
private String _dbFile;
private Connection _conn;
private PreparedStatement _statement;
public Database(LSE item) {
ric = item.get_ric();
volume = item.get_volume();
}
public void writeToDb() throws SQLException{
//setString
}
}
나는 ItemDispatcher 클래스가 데이터베이스 연결을 만들 : 반복 ItemDispatcher
실행에한 번만
public class ItemDispatcher implements Runnable {
private LSE lse;
public ItemDispatcher(LSE lseItem) {
this.lse= lseItem;
}
@Override
public void run() {
try {
new Database(lse).writeToFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
run()
방법. 데이터베이스 연결을 만들고 Database
클래스에 prepareStatement
을 만들고 싶지만 데이터베이스 클래스 생성자에서이 작업을 수행하면 여러 번 연결이 생성됩니다. run()
을 실행할 때마다 연결을 단 한 번만 만들고 다시 반복하지 않도록 디자인을 변경하는 방법은 무엇입니까? 다른 클래스에서는이 작업을 수행하지 않으려 고합니다. 데이터베이스 클래스
사용자의 접근 방식에서는 ItemDispatcher 인스턴스가 하나만 있다고 가정합니다. –
@codenoire, 그는 ItemDispatcher를 계속 전달할 수 있습니다. 단, ItemDispatcher의 인스턴스가 하나만 있다고 가정하는 것이 아니라 연결의 인스턴스 하나입니다. – Leo
디스패처의 두 인스턴스가 단일 데이터베이스 연결을 공유하는 확장 가능한 응용 프로그램을 구축하지 못할 수도 있습니다. 두 번째 사람은 거래와 같은 일을해야합니다. 싱글 톤은 응용 프로그램 전체에 적용됩니다. 이것은 실제로 OP가 요구하는 것 이상입니다. *** 인스턴스 ***의 범위 내에서 run 메소드를 요청하여 하나의 데이터베이스 연결을 사용합니다. –