Fight the Future

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

プレゼン、ボランティアコーチします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチします!資料レビューや録画リハへアドバイスします。Twitter@jyukutyoまでメンションでもDMでも。

私はデブサミやJJUG CCCなど200人規模で経験ありです。海外も短いながら経験あり。デブサミ2017では公募スピーカー1位でした!

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での操作
コールバックメソッドの使用。
ちょっと面倒なつくりっぽい。
このまま使うことはあまりなさそうなのでここは省略。