싫다. 사실 DAO (Data Access Object) 패턴을 살펴 봐야합니다.
모델 클래스 자체는 한 논리 인스턴스에서 다른 논리 인스턴스로 정보를 전송하는 역할 만하며 getter 및 setter 메소드 만 포함해야합니다. 사용하는 프레임 워크에 크게 의존
public class BookDAO {
private PreparedStatement saveStmt;
private PreparedStatement loadStmt;
public DBBookDAO(String url, String user, String pw) {
Connection con = DriverManager.getConnection(url, user, pw);
saveStmt = con.prepareStatement("INSERT INTO books(isbn, title, author) "
+"VALUES (?, ?, ?)");
loadStmt = con.prepareStatement("SELECT isbn, title, author FROM books "
+"WHERE isbn = ?");
}
public Book loadBook(String isbn) {
Book b = new Book();
loadStmt.setString(1, isbn);
ResultSet result = loadStmt.executeQuery();
if (!result.next()) return null;
b.setIsbn(result.getString("isbn"));
b.setTitle(result.getString("title"));
b.setAuthor(result.getString("author"));
return b;
}
public void saveBook(Book b) {
saveStmt.setString(1, b.getIsbn());
saveStmt.setString(2, b.getTitle());
saveStmt.setString(3, b.getAuthor());
saveStmt.executeUpdate();
}
}
:
DAO 클래스는 문서라도이 DAO 패턴의 예입니다 (데이터베이스) 업데이트를 저장하거나 정보가 일부 데이터 소스를 형성 검색 할 책임이 있습니다. – maba
여기에서 일부 토론 - http://stackoverflow.com/questions/538870/java-static-methods-best-practices. 저는 정적 인 방법을 개인적으로 사용하지 않을 것입니다. 왜냐하면 그들은 종종 테스트하기가 더 어렵 기 때문입니다. 또한 앱에서 다중 소유 (multi-tenancy)를 지원하는 경우 (즉, 2 개 이상의 별개 사용자 집합)이 경우 더 많은 어려움이 발생할 수 있습니다. –
저의 겸손한 견해로는, MVC 패턴은 다른 클래스가 직접적으로 '데이터 멤버'에 직접 액세스하고 '멤버 함수'를 확장한다는 의미에서 캡슐화의 개념을 이어가는 데 사용됩니다. 따라서 인스턴스 메서드를 만드는 것이 첫 번째 선택이되어야한다고 생각합니다. :-) –