いいえ。実際には、DAO(Data Access Object)パターンを調べる必要があります。
モデルクラス自体は、1つのロジックインスタンスから別のロジックインスタンスに情報を転送することのみを担当し、geterメソッドと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();
}
}
使用するフレームワークに大きく依存します。クラスは、いくつかのデータソース(データベース).Hereを形成更新を保存するかの情報を取得するための責任がある
DAOは、DAOパターンの一例です。 – maba
ここでの議論 - http://stackoverflow.com/questions/538870/java-static-methods-best-practices静的メソッドは個人的には使用しません。なぜなら、テストすることはしばしば難しいからです。また、アプリがマルチテナントをサポートしている場合(つまり、2つ以上の異なるユーザーセット)、これはもっと難しくなる可能性があります。 –
私の謙虚な意見では、MVCパターンは、カプセル化の概念を進めるために使用されています。つまり、他のクラスはその「データメンバー」に直接アクセスし、特定のメンバー関数を拡張することはありません。したがって、インスタンスメソッドの作成は、まずは選択する必要がありますね: –