Spring Framework 5章 JDBC によるデータアクセス
5.5. JdbcTemplate#update()
前節までで DBMS の基本機能である CRUD (Create, Read, Update, Delete) の R が一通り終わりました。データベースを扱うには残りの
Create, Update, Delete ができなければいけません。JdbcTemplate を用いて CUD の操作を行うには update()
メソッドを使用します。 update()
メソッドも引数の異なるものが合計 7つ用意されていますが、ここでは以下のシグニチャを持つ
3つを説明します。
int update(String sql)
int update(String sql, Object[] args)
int update(String sql, Object[] args, int[] argTypes)
上の 2つは queryForInt()
と同様です。最後のメソッドの 3番目の引数 argTypes
には 2番目の引数で渡すデータの型を示す値の配列を渡します。データ型を示す値には java.sql.Types
で定義されている定数フィールド値を使用します。
update()
メソッドはたとえば以下のように使用します。
public class PersonDao { private DataSource dataSource = null; public void insert(Person person) { final String sql = "insert into person(first_name, family_name) values(?, ?)"; JdbcTemplate jt = new JdbcTemplate(this.dataSource); jt.update(sql, new Object[]{person.getFirstName(), person.getFamilyName()}); } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } }
実習課題 2
Spring を使用して以下の要件を満たすコンソールアプリケーションを作成しなさい。
- 任意のテーブルに任意のデータを挿入すること
- 使用するテーブルは少なくとも 3種類の異なるデータ型のカラムをもつこと