<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Dbutils筆記

    Posted on 2011-10-07 17:22 leekiang 閱讀(859) 評論(0)  編輯  收藏 所屬分類: jdbc、事務、并發(fā)
    ResultSetHandler的實現(xiàn)類有很多種,涉及數(shù)組、map 、javabean等,都接受一個RowProcessor類型的參數(shù)來實現(xiàn)結果集向?qū)ο蟮霓D(zhuǎn)化。其中RowProcessor的默認實現(xiàn)類為BasicRowProcessor, 用戶也可以自己實現(xiàn)RowProcessor。 BasicRowProcessor使用BeanProcessor來完成resultset中的值向javabean的映射,前提要求列名和bean屬性名必須一致。

    ArrayHandler :將ResultSet中第一行的數(shù)據(jù)轉(zhuǎn)化成對象數(shù)組
    ArrayListHandler : 將ResultSet中所有的數(shù)據(jù)轉(zhuǎn)化成List,List中存放的是Object[]
    BeanHandler :將ResultSet中第一行的數(shù)據(jù)轉(zhuǎn)化成類對象
    BeanListHandler :將ResultSet中所有的數(shù)據(jù)轉(zhuǎn)化成List,List中存放的是類對象
    MapHandler :將ResultSet中第一行的數(shù)據(jù)存成Map映射
    MapListHandler :將ResultSet中所有的數(shù)據(jù)存成List。List中存放的是Map
    ColumnListHandler :將ResultSet中某一列的數(shù)據(jù)存成List,List中存放的是Object對象
    KeyedHandler :將ResultSet中所有數(shù)據(jù)存成Map,Map中key為某一列的值,value為Map,存放key對應的行的數(shù)據(jù)
    ScalarHandler :將ResultSet中一條記錄的其中某一列的數(shù)據(jù)存成Object

    查詢的基本用法:
    ??????? String?url?=?"jdbc:mysql://localhost:3306/blog";
    ????????String?jdbcDriver?
    =?"com.mysql.jdbc.Driver";
    ????????String?user?
    =?"root";
    ????????String?password?
    =?"root";
    ????????DbUtils.loadDriver(jdbcDriver);
    ????????Connection?conn?
    =?null;
    ????????
    try?{
    ????????????conn?
    =?DriverManager.getConnection(url,?user,?password);
    ????????????QueryRunner?qr?
    =?new?QueryRunner();
    ????????????List??results?
    =?(List)qr.query(conn,?"select??*??from?T_USER",?new?BeanListHandler(User.class)?);
    ????????}?
    catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}?
    finally?{
    ????????????DbUtils.closeQuietly(conn);
    ????????}
    該query方法執(zhí)行后會自己關閉rs和stmt,但沒有關閉連接。
    如果傳入dataSource, QueryRunner run = new QueryRunner( dataSource ),則執(zhí)行不含conn參數(shù)的查詢方法時,會自己關閉連接。
    public?<T>?T?query(String?sql,?ResultSetHandler<T>?rsh,?Object?params)
    ????????
    throws?SQLException?{

    ????????Connection?conn?
    =?this.prepareConnection();

    ????????
    try?{
    ????????????
    return?this.query(conn,?sql,?rsh,?params);
    ????????}?
    finally?{
    ????????????close(conn);
    ????????}
    ????}


    擴展ApacheCommos的DbUtils以支持字段名下劃線映射
    對 DBUtils 包中 BeanProcessor 的優(yōu)化
    修改DbUtils支持表名下劃線映射
    dbutils
    Commons DbUtils 源碼閱讀四
    讓你的DBUtils支持enum
    OSChina底層數(shù)據(jù)庫操作的類(QueryHelper)源碼
    OSChina底層數(shù)據(jù)庫操作的類(QueryHelper)源碼2
    基于JDBC+Oracle+Apache Dbutil的泛型DAO
    日常數(shù)據(jù)庫操作的煩惱及解藥--DbUtils、MyBatis和Hibernate
    基于dbutils支持annotation的簡易orm

    主站蜘蛛池模板: 亚洲fuli在线观看| 亚洲一区二区视频在线观看| 亚洲av之男人的天堂网站| 黄页网站在线免费观看| 日韩免费一区二区三区| 亚洲精品天堂成人片AV在线播放| 免费一本色道久久一区| 亚洲国产激情在线一区| 午夜神器成在线人成在线人免费| 亚洲色成人WWW永久在线观看| 女人张开腿等男人桶免费视频 | 亚洲成在人线电影天堂色| 久久A级毛片免费观看| 亚洲日本乱码一区二区在线二产线| 免费黄色福利视频| 亚洲熟妇无码av另类vr影视| 国产免费资源高清小视频在线观看| 色偷偷亚洲男人天堂| 亚洲天堂中文字幕在线| 午夜精品射精入后重之免费观看| 久久亚洲国产精品成人AV秋霞| 中字幕视频在线永久在线观看免费 | 在线观看视频免费国语| 国产产在线精品亚洲AAVV| 国产性爱在线观看亚洲黄色一级片| 精品国产污污免费网站入口在线| 亚洲成AV人片在线观看无码| 1000部免费啪啪十八未年禁止观看| 亚洲乱码在线观看| 亚洲一级黄色视频| 亚洲成人免费在线| 亚洲av无码专区在线电影天堂 | 亚洲人成网www| 麻豆国产人免费人成免费视频| a级毛片免费观看网站| 亚洲最新黄色网址| 亚洲精品国产精品国自产观看| 999任你躁在线精品免费不卡| 亚洲人成人网站18禁| 亚洲欧洲成人精品香蕉网| 欧美日韩国产免费一区二区三区 |