JavaSE 응용 프로그램에서 JPA를 사용 중이며 데이터베이스 연결을 관리하고 객체를 데이터베이스에 유지하는 클래스를 작성했습니다. 데이터베이스 연결에 대한 연결 매개 변수는 클래스 생성자를 사용하여 전달되며 클래스에는 연결 매개 변수의 유효성을 검사하는 메서드가 있습니다.JPA 연결 속성을 확인하는 방법은 무엇입니까?
public class DatabaseManager{
private EntityManagerFactory entityManagerFactory = null;
public DatabaseManager(String connectionDriver, String connectionUrl, String username, String password) {
Properties props = new Properties();
props.put("javax.persistence.jdbc.driver", connectionDriver);
props.put("javax.persistence.jdbc.url", connectionUrl);
props.put("javax.persistence.jdbc.user", username);
props.put("javax.persistence.jdbc.password", password);
entityManagerFactory = Persistence.createEntityManagerFactory("name of persistence unit", props);
}
public boolean checkConnection(){
try{
entityManagerFactory.createEntityManager();
}catch(Exception e){
return false;
}
return true;
}
}
checkConnection 메서드를 호출하면 지정된 매개 변수를 사용하여 새 entitymanager를 만들려고합니다. 연결을 설정할 수없는 경우 entitymanagerfactory는 예외를 throw하고 메서드는 false를 반환합니다. 나는 다음과 같은 결과를 볼 수있는 방법을 테스트 할 때
는 :
- 모든 매개 변수가 올바른지를 - 예상대로> 메소드는 true를 반환합니다.
- URL 또는 사용자 이름이 올바르지 않습니다. -> 메서드가 예상대로 false를 반환합니다.
- drivername 또는 사용자 암호가 정확하지 않음 -> 메서드가 true를 반환하지만 false를 반환해야합니다. < - 이것은 내 문제입니다.
누군가가 이와 같이 작동하는 이유와 일부 데이터베이스 테이블에 데이터를 쓰지 않고 연결 매개 변수를 테스트하는 적절한 방법이 무엇인지 말해 줄 수 있습니까?
현재 EclipseLink를 사용하고 있지만 공급자와 독립적 인 방식으로 찾고 있습니다.
답변 해 주셔서 감사합니다.