主な機能
データベースパッケージの操作方法
CRUDはbasedaoの内側の内側にあります
アップデートの追加および削除の内側dbutilsを達成することができます
クエリ内のdbutilsを達成することができ、問い合わせラインとマルチライン
クエリ結果は、Beanのパッケージオブジェクトを返します。
相続の具体的な方法basedaoその他の必要性を達成するために時間を使って
パブリッククラスUserDaoImplはBaseDao <ユーザー>実装を拡張しUserDao
com.itstaredu.bookstore.daoパッケージ; / ** * @version 1.0 * @date 2019年12月5日21:32 ** / インポートcom.itstaredu.bookstore.utils.JDBCUtils; インポートorg.apache.commons.dbutils .QueryRunner; インポートorg.apache.commons.dbutils.handlers.BeanHandler; インポートorg.apache.commons.dbutils.handlers.BeanListHandler; インポートjava.lang.reflect.ParameterizedType; インポートjava.lang.reflect.Type; Javaソースコードの読み込み。 sql.Connection; インポートます。java.sql.SQLException; インポートはjava.util.List; / ** *データベースの基本的な操作のカプセル化の方法 *ラインすべてのCRUDテーブルコールがある *オブジェクトのメソッド * * / BaseDaoクラスパブリック<T> { プライベートクラス<T>型。 QueryRunner queryRunner新しい新しいQueryRunner =プライベート(); 公共BaseDao(){ クラス= this.getClass CLA()<BaseDaoが伸びる?>; / ** *一般的な親と * / は、ParameterizedType TPのために= cla.getGenericSuperclass(は、ParameterizedType用) (); タイプ[]タイプtp.getActualTypeArguments =(); TYPE =(クラス<T>)タイプ[0]; } / ** *データベース操作がdbutilsを提供するためのツール * CRUD * / パブリックINT更新(文字列SQL、のparamsオブジェクト...){ / ** *外側に研磨工程ではないことは、処理に面倒です * / int型の更新= 0; 接続接続JDBCUtils.getConnect =(); 試す{ T = queryRunner.query(CONN、SQL、新しいBeanHandler <T>(タイプ)、paramsは)。 更新= queryRunner.update(接続、SQL、paramsは)。 }キャッチ(のSQLException E){ e.printStackTrace(); }最後に{ JDBCUtils.releaseConnection(接続)。 } 更新を返します。 } / ** * ResultSetHandler将结果转换为对象的处理程序 ハンドルから返されるオブジェクト・クラス()から作成される * / パブリックT getBean(文字列のSQL、オブジェクト...のparams){ 接続CONN = JDBCUtils.getConnect( ); T T = NULL; 試す{ e.printStackTrace(); } 最後に { }キャッチ(のSQLException E){ JDBCUtils.releaseConnection(CONN)。 } Tを返します。 } パブリックリスト<T> getListBean(文字列のSQL、オブジェクト...のparams){ 接続CONN = JDBCUtils.getConnect()。 リスト<T>リスト= NULL; 試す{ リスト= queryRunner.query(CONN、SQL、新しいBeanListHandler <T>(タイプ)、paramsは)。 }キャッチ(のSQLException E){ e.printStackTrace(); }最後に{ JDBCUtils.releaseConnection(CONN)。 } リストを返します。 } }