16. #ccc_a1
SpringのJdbcTemplate
List<Book> books = jdbcTemplate.query(
“SELECT ISBN, TITLE FROM BOOKS”
+ “ WHERE ISBN = ? ”,
new Object[]{“hoge”}, // “?”のところに入れたい引数
new BeanPropertyRowMapper(Book.class)
);
16
17. #ccc_a1
MyBatis
<!-- xmlファイル -->
<select id="selectBook" parameterType=”String”
resultType="Book">
<![CDATA[
SELECT ISBN, TITLE FROM BOOKS
WHERE ISBN = #{isbn}
]]></select>
// Javaコード
List<Book> books = bookRepository.select(“hoge”);
17
37. #ccc_a1 37
A. 手書きのDDL(を積んでゆくだけ)
最初にCREATE TABLE、 運用しながら ALTER,
CREATE/DROP INDEX, CREATE/DROP TABLE...
B. ER図をまず書く。(そこからDDL文を自動生成)
C. JPAのエンティティクラスを手書きし、Hibernate-JPAでDDL文
を自動生成
D. テーブル定義書.xlsと手書きのDDLを同時に書き続ける
56. #ccc_a1
他の方法
56
A. RDBMSのcsv, tsvのバルクロード機能
a. 日付の相対指定が難しい
B. INSERT文を用意して実行
a. 大量の手書きINSERT文が今後のDB変更に耐えられるか?
C. 上記A,Bのハイブリッド
a. csvで入れて相対日付カラムはUPDATE文
D. FlywayのJava-Based Migration
a. DB定義変更用PJとは別PJとしてテスデータ用PJを作っておく
b. SQL文ではなくJavaコードを作っておく
c. INSERT文よりは楽。日付の相対指定も可能。