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種類の異なるデータ型のカラムをもつこと

