1日の終わりに、独自のAPIは、いくつかの資格情報を使用して、いくつかのデータベース(いくつかのサーバーで利用可能)にアクセスする必要があります。あなたはこれを見ないだけです。Springでは、最初にいくつかを定義する必要がありますDataSource
。dbcp、bonecp、c3p0などの既存のライブラリを使用するか、 jndiを介してアプリケーションサーバーから提供されたライブラリを使用します。インターフェイスを実装している限り、どのアプローチを選択してもかまいません。それぞれを詳細に説明するには多すぎます。DataSource
DataSource
Beanを設定したら、JDBCコードを大幅に簡素化する方法を使用することを強くお勧めします。例:JdbcTemplate
List<Map<String,Object>> res = jdbcTemplate.queryForList("select * from test");
...そしてもっとたくさん。
更新:既存のレガシーAPIを最新のフレームワークDataSource
(ほとんどすべて)で使用する場合、DataSource
アダプターの実装は簡単です(残りのメソッドは実装されないままで、スローされる可能性がありますUnsupportedOperationException
):
public class LegacyDataSourceAdapter implements DataSource {
@Override
public Connection getConnection() throws SQLException {
return JdbcServiceFactory.getInstance().getDefaultDatabase().getConnectionManager().getConnection();
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return getConnection();
}
//other methods are irrelevant
}
LegacyDataSourceAdapter
次に、 (おそらくSpring Beanとして)のインスタンスを作成し、それをJdbcTemplate
Hibernate、myBatisに渡します...
ところで、ここに悪いAPI設計のいくつかのファーストクラスの例があります:
Connection conn = JdbcServiceFactory.
getInstance().
getDefaultDatabase().
getConnectionManager().
getConnection();