Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

DAO Support and JDBC Framework その1

Java Development with the Spring Framework』をまとめます。
Chapter 5から始めます。


JDBCの問題
JDBCは重要なAPI
JDBCの主なインターフェースはConnection, DataSource, Statement, PrepareStatement, CallableStatement, ResultSet。
これらのインターフェースを使うとSQLExceptionがついてくる。
JDBCでの問題は例外とコネクション管理に関連する。
finallyでConnection閉じたりするけどclose()自身がSQLExceptionをスローするからうっとおしい。


SQLExceptionの処理。
DBによってエラーコードが違う。
SQLExceptionじゃなんのエラーかわからん。


DataSource使おう。
DriverクラスやURLを隠蔽してくれるよ。


・Springがやってくれること
JdbcTemplate。
例外処理を書かなくていい。
SQLExceptionはDataAccessExceptionのサブクラスに変換される。


DataSourceはスレッドセーフでコネクションプーリングしてくれる。
Commons DBCPとかc3p0で実装されてる。


独自で例外の変換できるよ。


・JdbcTemplateでの操作
コールバックメソッドの使用。
ちょっと面倒なつくりっぽい。
このまま使うことはあまりなさそうなのでここは省略。