DBUtils Javaの学習

DBUtils:私たちはCRUDコードを簡素化するだけでヘルプ。ない仕事のその範囲で、仕事にデータベース接続とアクセスを作成します。

A、DBUtilsアプリケーション

ダウンロード①、DBUtils jarファイル

  http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi

②は、SQL Server、C3P0、ビルドにDBUtils環境は(適切なjarファイルをインポート)

  SQL Serverの:sqljdbc42.jar(JDBCドライバ)

  C3P0:c3p0-0.9.5.5.jar、mchange-コモンズ-javaの-0.2.19.jar、C3P0-config.xmlの文件

  DBUtilts:コモンズ-dbutils-1.7.jar

  

③、追加および削除

QueryRunner queryRunner = 新しい QueryRunner(ComboPooledDataSource()); 
    
// 增加 
queryRunner.update( "アカウント値への挿入(ヌル、、)?"、 "AA"、1000年); 
        
// 删除 
queryRunner.update(、5を"ID =アカウントから削除しますか?" ); 
        
// 更新 
queryRunner.update( "更新アカウントの設定お金= ID =?"、10000000、6);

④お問い合わせ

  1、直接新しい匿名クラスを実装し、そのインタフェースのResultSetHandler

公共 ボイドいるTestMain(){ 
    ComboPooledDataSourceのdataSource = 新しいComboPooledDataSource()。

    QueryRunnerランナー = 新しいQueryRunner(データソース);
    試す{ 
        アカウント結果、= runner.query( "?ID =アカウントSELECT * FROM" 新しい ResultSetHandler <アカウント> (){ 
        @Override 
        パブリックアカウントハンドル(のResultSet RS)がスローするSQLException { 
            アカウントアカウント = 新しいアカウントを();
             ながら、( rs.next()){ 
            account.setId(rs.getInt( "ID")); 
            account.setName(rs.getString( "名前" )); 
            account.setMoney(rs.getBigDecimal( "お金" )); 
            } 
            戻りアカウント。
        } 
        }、 1 ); 

        System.out.println(result.toString())。
    } キャッチ(のSQLException E){ 

        e.printStackTrace(); 
    } 
}

  2、フレームワークインタフェースクラスResultSetHandlerを使用して実装

    2.1、ResultSetHandlerインターフェイスカテゴリを達成するために、次のとおりです。            

       BeanHandler、オブジェクトとしてカプセル化されたデータへの単一のクエリ
      リストにBeanListHandler、データパッケージの複数のクエリ<OBJECT>
      最も頻繁に使用される2
 
 
      ArrayHandler、単一のアレイにカプセル化クエリデータ
      ArrayListHandlerは、配列された要素のセット、セットへのデータパッケージの複数の問い合わせ

      MapHandler、単一のマップにカプセル化されたクエリデータ
      MapListHandler、要素が設定されたマップであるセットへのデータパッケージの複数のクエリ、

      ColumnListHandler
      KeyedHandler
      ScalarHandler(セルT_Nameから)(1カウント--select)
    2.2、コード実装
      2.2.1、単一のオブジェクトのクエリ
 
1 QueryRunner queryRunner = 新しい QueryRunner(新しいComboPooledDataSource())。
2  // 查询单个对象
3アカウントアカウント= queryRunner.query( "選択*口座からのid =?" 4                  新しい BeanHandler <アカウント>(アカウント。クラス)、8)。

      2.2.2、クエリの複数のオブジェクト

1 QueryRunner queryRunner = 新しい QueryRunner(新しいComboPooledDataSource())。
2一覧<アカウント>リスト= queryRunner.query( "アカウントから選択*" 3                   リストハンドラ <アカウント>(アカウント。クラス));

第二に、カスタムDBUtils

Ⅰ、更新方法

1  公共 INT の更新(SQL文字列、オブジェクト...引数){
 2      接続の接続= NULL ;
 3      PreparedStatementのPS = NULL ;
 4      int型の結果= 0 ;
 5      試み{
 6。          接続= JDBCUtil.getConnection();
 7          PS = 接続。 prepareStatement(SQL)
 。8  
。9          ParameterMetaDataアンザのmetaData = ps.getParameterMetaData();
 10          // パラメータの数、パラメータに割り当てられたサイクル
11          のためにINTI = 0; I <metaData.getParameterCount(); I ++ ){
 12          ps.setObject(I + 1 、引数[I])。
13          }
 14  
15          結果= ps.executeUpdate()。
16      } キャッチ(のSQLException E){
 17  
18          e.printStackTrace();
19      } 最後に{
 20  
21      }
 22      リターン結果。
23      }

Ⅱ、クエリ(クエリ)

 

 1、クエリ結果のユーザーインターフェース

1  // 指定されたパッケージ型のオブジェクトにクエリ結果セット、およびオブジェクトインスタンス戻り
2  パブリック インターフェース ResultSetHandler <T> {
 3。     Tハンドル(ResultSetのResultSetを);
 4 }

2、一般クエリ

1  公共 Tクエリ(文字列SQL、ResultSetHandler <T> ハンドラ、...オブジェクト引数){
 2      =コネクション接続NULL ;
 3      PreparedStatementのPS = NULL ;
 4      のResultSetたresultSet = NULL ;
 5      試み{
 6          接続= JDBCUtil.getConnection() ;
 7          PS = のConnection.prepareStatement(SQL)
 。8  
。9          ParameterMetaDataアンザのmetaData = ps.getParameterMetaData();
 10          // パラメータの数、パラメータに割り当てられたサイクル
11          のためにINT0 = I; I <metaData.getParameterCount(); I ++ ){
 12である          。ps.setObject(I + 1 、引数[I]);
 13である         }
 14          // クエリ結果セット
15          たresultSet = ps.executeQuery();
 16          // クラスハンドルメソッド呼び出しインターフェースはResultSetHandlerを実現
17。         リターンhandler.handle(たresultSet);
 18である      } キャッチ(のSQLException E){
 19。 
20が         e.printStackTrace();
 21である      } 最後に{
 22は 
23である     }
 24      リターン NULL ;
 25 }

3、コールカスタム一般的なクエリ

1  公共 ボイドいるTestMain(){
 2      アカウントアカウント= CommonCRUDUtils.query( "アカウントSELECT * FROM ID =?"、新しい
3        ResultSetHandler <アカウント> (){
 4  
5          @Override
 6          パブリックアカウントハンドル(のResultSetたresultSet){
 7          アカウントアカウント= 新しいアカウント();
 8          試み{
 9              もし(resultSet.next()){
 10                  account.setId(resultSet.getInt( "ID" ));
 11                  account.setName(( "名" resultSet.getString ))。
 12                 account.setMoney(のResultSet.getBigDecimal( "お金" ));
13                  リターンアカウント。
14              }
 15          } キャッチ(のSQLException E){
 16              
17              e.printStackTrace();
18          }
 19          リターン ヌル20          }
 21        
22        }、3 )。
23      
24      のSystem.out.println()(account.toString)。
25      }

 

おすすめ

転載: www.cnblogs.com/WarBlog/p/12581955.html