春のJDBC
春のフレームワークJDBCシンプルなパッケージには、簡略化され、開発JDBCTemplateターゲットJDBCが提供されます。
ステップ:
1、ジャーパッケージに
2、JDBCTemplateは、データソースのデータソースに依存するオブジェクトを作成します。
JdbcTemplateテンプレート=新しいJdbcTemplate(DS)。
3、CRUD操作を行うためにJdbcTemplateの道を呼び出します
一般的な方法:
図1に示すように、更新():DMLステートメントを実行します。ステートメントを変更、追加、削除。 2、queryForMap():一つだけの長さを設定し、結果を照会するには、この方法:クエリ結果がマップセット、キーとしてカラム名、このマップセット(注意を置くためのパッケージの値として記録された値としてパッケージ設定されている結果) 。3、queryForList():地図に設定された各パッケージレコード、リストにロードされた後、設定されたマップのセット):クエリ結果は、結果セットリストセットパッケージ(ノートである
。4、クエリ():クエリ結果、結果JavaBeanのようにパッケージ化、
クエリのパラメータ:RowMapperの
①RowMapperのメソッドはの書き換え匿名の内部クラス、作成
②BeanPropertyRowMapper実装クラスは、一般的に使用され、データは自動包装のJavaBeanに行うことができる
新しいBeanPropertyRowMapper <タイプ>(型の.class)
5。 queryForObject():クエリ結果、オブジェクトは、重合は、クエリ機能のために一般的に、結果としてパッケージ化され
ケース:
ブック書店データベースのテーブル構造のテーブルと次のように記録します:
需要:
(1)10 NUMにデータ番号1を修正します。
(2)レコードを追加します。
(3)追加したレコードを削除します。
(4)地図のセットとしてパッケージクエリIDレコード1、。
(5)リストをカプセル化されているすべてのレコードのクエリを、。
(6)クエリがすべてのレコードの、EMPがオブジェクトリストのセットとしてパッケージ。
(7)レコードの総数クエリを。
コードの実装:
1つの インポートcn.ks.beans.Book。
2 インポートcn.ks.utils.JDBCUtils。
3 輸入org.junit.Test。
4 インポートorg.springframework.jdbc.core.BeanPropertyRowMapper。
5 輸入org.springframework.jdbc.core.JdbcTemplate。
6 インポートorg.springframework.jdbc.core.RowMapper。
7
8 インポートのjava.sql.ResultSet。
9 インポートjava.sql.SQLExceptionという。
10 インポートjava.util.Listに。
11 インポートjava.util.Map。
12の
13 パブリック クラス{JdbcTemplateDemo
14
15 // 1 JDBCTemplate取得対象
16 プライベート JdbcTemplateテンプレート= 新しい新しいJdbcTemplate(JDBCUtils.getDataSource());
17
18は、 / *
19 * 1、NUM改訂番号データは、1〜10であり、
20 * /
21である @Test
22は 公衆 ボイドTEST1(){
23は、
24 // 2 SQL定義する
25 文字列のSQL = "ID = NUM = 10. 1更新ブックSET"を、
26である // 3 SQL実行。
27 INTの COUNT = template.update(SQL)を、
28
29 System.out.println(COUNT);
30
31である }
32
33は、 / *
34であり 、レコード2を添加する*
35 * /
36 @Test
37 [ パブリック ボイドTEST2(){
38であり ,,(文字列のSQL =「INSERT INTO予約値? ?,,)?? " ;
39 int型 COUNT = template.update(SQL、NULL、"赤の夢」、3、33.0 ,. 6。);
40 のSystem.out.println(COUNT);
41れる }
42である
43ことである / *
44れる * 3。 、ちょうど追加されたレコードを削除し、
45 * /
46 @Test
47 パブリック ボイドTest3は(){
48 列= SQL "IDは=ブックから削除しますか?" ;
49 int型 COUNT = template.update(SQL ,. 3 );
50 のSystem.out.println(COUNT)
51である }
52である
53ことです * /
54 * 4、マップのセットとしてパッケージクエリIDレコード1;
55は、 このメソッドの長さは、一つだけの結果を照会することに注意してください*
56である * /
57である @Test
58 公共 ボイドTEST4(){
59 // 文字列のSQL "?= *上記のID SELECT =または上記IDからWHEREを予約" =;
60 // 地図の<string、オブジェクト> = template.queryForMapマップ(SQL ,. 1、2);
61である 文字列= SQLは、 "より* WHERE ID =ブックを選択?" ;
62である 地図の<string、オブジェクト> = template.queryForMapマップ(SQL ,. 1 );
63で のSystem.out.println(MAP);
64 // {。。。。= 1、ID、名前=旅、種類1 =、= 22.0価格、NUM = 5}
65 }
66
67 / *
68 5、全てのレコードに対するクエリ。リストとしてパッケージ;
69 * /
70 @Test
71は、 公共 ボイドTEST5(){
72 列= SQL "が予約SELECT * FROM" ;
73であります リスト<地図<文字列、オブジェクトリスト>> = template.queryForList(SQL);
74
75 のために(地図の<string、オブジェクト> アイテム:リスト){
76 のSystem.out.println(項目);
77 }
78 }
79
80 / *
81 6オブジェクトリストのEmpのセットとしてパッケージすべてのレコードを、照会;
82 * /
83 @Test
84 公共 ボイドTEST6(){
85 列= SQL "が予約SELECT * FROM" ;
86 リスト<ブック> =テンプレートリスト.query(SQL、新しい新しい RowMapperの<ブック>(){ // 匿名内部クラス
87 @Override
88 公共ブックmapRow(ResultSetのResultSetが、int型 i)がスローするSQLException {
89 ブックブック= 新しいブックを();
90 book.setId(resultSet.getInt( "ID" ))。
91 book.setName(resultSet.getString( "名前" ));
92 book.setKind(resultSet.getString( "種類" ));
93 book.setPrice(resultSet.getDouble( "価格" ));
94 book.setNum(resultSet.getInt( "NUM" ))。
95
96 戻り帳;
97 }
98 ;})
99
100 のための(本書籍:リスト){
101 のSystem.out.println(書籍);
102 }
103 }
104
105 / *
106 。6、すべてのクエリのレコード、オブジェクトにEMPとしてパッケージコレクションのリスト;
107 * /
108 @Test
109 公共 ボイドTEST7(){
110 列= SQL "SELECT *帳から" ;
111 リスト<ブック>リスト= template.query(SQL、新しい新しい BeanPropertyRowMapper <ブック>(ブック。クラス));
112 用(ブックブック:リスト){
113 のSystem.out.println(書籍);
114 }
115 }
116
117 / *
118 * 7、查询总记录数。
119 * /
120 @Test
121 公共 ボイドTEST8(){
122 = "選択数本から(ID)"文字列のSQL ;
123 = template.queryForObject(SQL、ロング沿っロングクラス)。
124 のSystem.out.println(沿って)。
125 }
126 }