1

DAOデザインパターンの接続オブジェクトはどこに配置する必要がありますか?

DaoManager次の2つのメソッドを使用して別のクラス(例)を作成する必要がopen()ありclose()ますか?そして、ビジネスロジックでは次のようになります。

DaoManager.open();
PersonDao personDao = DaoFactory.getPersonDao();
Person person = personDao.getById(personId);
.... //more DAO operations
DaoManager.close()
4

2 に答える 2

2

PersonDao.getById()接続は、メソッド(および他のDAOメソッド)のローカル変数である必要があります。DataSourceから接続を取得して使用し、finallyブロックで閉じる必要があります。

ご使用の環境(Spring、EJBコンテナー?)についてもう少しお話しいただければ、さらに詳しく説明させていただきます。

于 2012-12-27T09:05:23.650 に答える
1

大規模なアプリケーションでは、通常、接続を接続プールに保持して、いくつかの目的で再利用できるようにします。これを行うのは、新しいDB接続を開くのにいくらか費用がかかる可能性があるためです。

DAOはプールへの参照を取得し、必要なときに接続を取得します。操作後、それはプールに戻されます。

利用可能な接続プールにはいくつかのオープンソース実装があり、これらの1つを再利用することをお勧めします。

于 2012-12-27T09:04:52.583 に答える