私はJavaを使い慣れていないので、自分のアプリケーション用にDAOを作成する必要があります。しかし、私は各クラス(インターフェイスを持つ)とメソッドをオーバーライドするためのDAOを作成したくありません。 DAOを他のすべてで拡張することは可能ですか?すべての種類のクラスで動作するメソッドを使用できますか? たとえば、クラスMyClassおよびクラスFooを単一のmehtod getList()で処理できるDAO。 ありがとうございました!すべてのクラスのJava DAO
0
A
答えて
0
ないようgooedアイデア、一般的に、しかし...
それは、約低レベルJDBC(などHibernateは、春のようなノーフレームワーク)の場合:あなたが作ることができる
は、 AbstractDAOクラス、次に他のDAOクラス(UserDAO、ProductDAOなど)を作成すると、それらのDAOクラスをすべて持つCommonServiceクラスを作成し、必要な機能を提供できます。
例:その後、
abstract class AbstractDAO {
private DataSource dataSource;
protected getDataSource() { // Inject it or hard-coded dataSource
return dataSource;
}
}
public class UserDAO extends AbstractDAO {
public User read(long id) {
// blablabla
return user;
}
public List<User> findAll() {
// blablabla
return users;
}
// and so on...
}
public class ProductDAO extends AbstractDAO {
public Product read(long id) {
// blablabla
return product;
}
public List<Product> findAll() {
// blablabla
return products;
}
// and so on...
}
その後、他のリポジトリ、および:
public class CommonService {
private final UserDAO userDAO = new UserDAO();
private final ProductDAO productDAO = new ProductDAO();
// other repositories
public User readUser(long id) {
return userDAO.read(id);
}
public Product readProduct(long id) {
return productDAO.read(id);
}
public List<User> findAllUsers() {
return userDAO.findAll();
}
public List<Product> findAllProducts() {
return productDAO.findAll();
}
}
0
そして、あなたが意味する場合は、作りたいです一般的なリポジトリ(DAO)ですが、Springは既にそれをかなり良い方法で行っています(JpaRepository
を呼び出します)。 interface MyRepository extends JpaRepository<User, Long> { }
): 出典:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.multiple-modules
しかし、あなたが望むなら、あなたはこのような何かに基づいて、あまりにもこのような仕組みを作ることができます(それは、例えば、春にないようにそれを動作させるための煩雑な作業となります。彼らは、このような驚異的なプロジェクトを実現するために、昼夜を働いた専門家)のチームですので:
public abstract class Repo<T, K> {
public abstract T read(K id);
public abstract List<T> findAll();
}
または
public interface Repo<T, K> {
T read(K id);
List<T> findAll();
}
関連する問題
- 1. DAOのサブクエリーJava
- 2. hibernateモデル/ DAOクラスのテスト
- 3. 抽象クラスの拡張クラスとDAO
- 4. 春のデータリポジトリとDAO Javaジェネリック
- 5. DAOクラスのメソッドを呼び出す
- 6. Objectクラスは、デフォルトでJavaのすべてのクラスの親クラスです
- 7. JavaのDAOの更新クエリの失敗
- 8. DAOクラスの設計方法は?
- 9. JavaのDAO移植での集約
- 10. Java DAOファクトリ・ダイナミック・リターン・オブジェクト・タイプ
- 11. Java DAOパターン複数テーブルアトミックトランザクション
- 12. Javaのリストの親のすべての子クラス
- 13. Java - デフォルト名のすべてのクラスを初期化するイテレータ
- 14. IBMプロセス・デザイナー - すべてのJavaクラス参照の検索
- 15. DAOクラスは同じ@Qualifierを持っています
- 16. DAOメソッドはすべてNullPointerExceptionを返します
- 17. DAOデザインパターン
- 18. どのCDIスコープをDAOクラスとサービスクラスに使用するか
- 19. クラスDTOとDAOの間のデータの受け渡し
- 20. すべてのコードパスがクラス
- 21. laravelクラスは、すべての
- 22. AndroidStudio:すべてのクラスは
- 23. Eclipse Javaでクラスのすべてのメソッドのすべての使用法をリストする方法は?
- 24. DAOクラスで解決策を提供していないクエリ
- 25. Beanクラスの無効なプロパティ 'dao'の理由
- 26. Java DAOで古いデータベーススキーマのバージョンをサポートする方法
- 27. HibernateのDAOデザイン
- 28. XML DAOの例
- 29. VOとDAOは、クエリ
- 30. Java:クラスのすべてのインスタンスへの参照を保存する方法は?
は同じかに似GETLIST()の実装ですすべてのクラス?あなたはこれまでに持っていたコードをいくつか見せることができますか? – tsolakp
私はコードを持っていませんが、私はPHPのようなものを考えていました。たとえば、文字列を関数、クラスオブジェクトに変換する... http://projects.spring.io/spring-data/ – Pythorogus
しかし、私はJava 7でそれを行う必要があります、私はフレームワークやライブラリを使用することはできません。出来ますか ? – Antonio