[戻る]

Java読書会BOF「Spring徹底入門 第2版」を読む会 第5回

開催概要

日時

2025年2月22日(土) 10:00-17:00

場所

幸市民会館 第4会議室

出席者(敬称略)

高橋(智)、井上、岩室、遠藤、高橋(徹)

本日は、p.109 組み込みデータソースから読み始めました。

Chapter 3 データアクセス(Tx,JDBC)

3.1 Springによるデータアクセス

3.1.2 データソースのコンフィグレーション

組み込みデータソース
  • p.109 ソースコードで EmbeddedDatabaseBuilderType.H2とあるが、他には何があるか?

    • enum型で、DERBY, H2, HSQL の3つが定義されている

3.2 Spring JDBC

  • 図3.2 equipment(設備)テーブル では、カラム equipment_id(pk) およびカラム room_id(pk)と2つのカラムが PK となっているが、room_idを pk にする必要があるのか?

    • 書籍の説明とサンプルコードが齟齬あり(サンプルコードは room_id カラムはpkではない)

    • このテーブル設計では、equipment_id だけではユニークにならないので、room_idを合わせてPKとすることで整合はしている

    • テーブル設計は微妙な気がする

  • p.114 XML定義

    • ② コンポーネントスキャンで対象パッケージを com.exampleとしているが、サンプルコードは org.example

    • 書籍のコード記述はパッケージ文が省略されている

  • pp.115,116

    • JdbcTemplate#queryForObjectは戻り値の型オブジェクトを第2引数に指定するが、NamedParameterJdbcTemplate#queryForObjectは戻り値の型オブジェクトを第3引数に指定する。順番が違うので違和感あり。

3.3 トランザクション管理

  • p.132 readOnlyがtrueの時は何が起きる?

    • JDBCのConnectionクラスのsetReadOnlyを呼び出すと思われる。JDBCドライバへのヒントとなる。読み取り専用トランザクションのあるデータベースなら制御が働くがそれ以外のデータベースは何もしないと思われる。

実習

書籍を読むだけでは身につかないね、ということから、今回は Spring Dataを使ってデータベースからレコードを取り出すことを各自のパソコンで実際に作って動かす時間を取りました。

次回

本日は、p.142 3.4の前まで。 次回は、p.142 3.4 データアクセスエラーのハンドリングから。

[戻る]