1 パッケージdemo03;
2
。3 インポートutils.JDBC_DBCP_Utils;
4
5。 インポートするjavax.sql.DataSource;
6 インポートのjava.sql.Connection;
7 インポートjava.sql.ParameterMetaData;
8 インポートのjava.sql.PreparedStatement;
9 インポートのjava.sql。 SQLException;
10
。11 パブリック クラスMyJDBCTemplate {
12れる // データソース渡す1.必要
13である プライベートデータソースデータソース;
14
15 // コンストラクタ
16 公衆MyJDBCTemplate(データソースデータソース){
17。 この .DataSource = データソース、
18である }を
19。
20である / **
21である * + JDBCデータベース操作メタデータをカプセル化するステップは、リソースの解放は、(ユーザが興味のリソースを解放しない)
22 *を追加します、 、削除、変更
23である *
24 *の@param SQLのSQLステートメントは、
25の * @param パラメータのparams
26がある * @return はCtrl + Alt + T
27 * /
28 公共 int型の更新(SQL文字列、オブジェクト...のparams){
29 接続接続= nullを;
30 =のPreparedStatementのPreparedStatement ヌル;
31は、 試してみる{
32 // 0の非空の判断
33がある IF(データソース== nullの)スロー 新しい新しいのRuntimeException( "MUSTのdataSource ... nullではない" );
34は
35の IF(SQL == nullの)スロー 新しい新しいです RuntimeException( "NOT NULLのSQL MUST ..." );
36
37 // ソースから得られた1接続オブジェクト
38は、 接続= dataSource.getConnection();
39 // 2.オブジェクトプリコンパイルされたSQL文を作成し(ユーザーの値に挿入?、?、?、?)
40 のPreparedStatement = のConnection.prepareStatement(SQL)
41がある
42れる // 3.メタデータ・オブジェクトは、得られたパラメータ
43である ParameterMetaDataアンParameterMetaData = preparedStatement.getParameterMetaData();
44である // で得られたパラメータの前記数
45 INT parameterCount = parameterMetaData.getParameterCount( );
46である
47 // 各割り当てに5?
48 のために(int型 I = 0; IはparameterCountを<; Iは++ ){
49 がPreparedStatement.setObject(I + 1。、paramsは[I]);
50 }
51れる
52れます // 6.执行
53 INT I = preparedStatement.executeUpdate()。
54 リターンI;
55 } キャッチ(のSQLException E){
56 e.printStackTrace();
57 } 最後に{
58 // 释放资源
59 JDBC_DBCP_Utils.release(ヌル、PreparedStatementの、接続)。
60 }
61 リターン -1 。
62 }
63 }