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

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

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

    posts - 5, comments - 14, trackbacks - 0, articles - 11

    我的DBConnection

    Posted on 2007-02-08 14:41 東舟 閱讀(1208) 評論(2)  編輯  收藏 所屬分類: J2EE

    ?

    ??1 import ?org.apache.log4j.Logger;
    ??2 import ?JAVA.sql. * ;
    ??3 import ?javax.sql.DataSource;
    ??4 import ?javax.naming.Context;
    ??5
    ??6 import ?config.ConfigBundle;
    ??7
    ??8 public ? class ?DBConnection? {
    ??9
    ?10 ? private ? static ? final ?Logger?logger? = ?Logger.getLogger(DBConnection. class );
    ?11
    ?12 ? private ? static ?DBConnection?instance? = ? null ;
    ?13 ?
    ?14 ? public ?JAVA.sql.Connection?conn? = ? null ;? // ?connection?object
    ?15
    ?16 ? public ?ResultSet?rs? = ? null ;? // ?resultset?object
    ?17
    ?18 ? public ?Statement?stmt? = ? null ;? // ?statement?object
    ?19
    ?20 ? public ?PreparedStatement?prepstmt? = ? null ;? // ?preparedstatement?object
    ?21
    ?22 ? private ?String?drivers? = ? null ;? // ?connection?parameter:drivers
    ?23
    ?24 ? private ?String?url? = ? null ;? // ?connection?parameter:url
    ?25
    ?26 ? private ?String?user? = ? null ;? // ?connection?parameter:user
    ?27
    ?28 ? private ?String?password? = ? null ;? // ?connection?parameter:password
    ?29 ?
    ?30 ? private ?String?conMode? = ? null ;
    ?31 ?
    ?32 ? public ?DataSource?ds? = ? null ;
    ?33
    ?34 ? public ?CallableStatement?callstmt? = ? null ;
    ?35 ?
    ?36 /**
    ?37 ?*?單實例
    ?38 ? */

    ?39 ? public ? static ? synchronized ?DBConnection?getInstance()? {
    ?40 ?? if ?(instance == null )
    ?41 ???instance = new ?DBConnection();
    ?42 ??
    ?43 ?? return ?instance;
    ?44 ?}

    ?45
    ?46 ? private ?DBConnection()? {
    ?47 ??conMode? = ?ConfigBundle.getString( " connction_mode " );
    ?48 ??init(conMode);
    ?49
    ?50 ?? // 使用xa協議的連接池驅動時,?AutoCommit缺省為false,?造成多處數據未提交
    ?51 ?? try ? {
    ?52 ???setAutoCommit( true );
    ?53 ??}
    ? catch ?(Exception?ex)? {
    ?54 ???logger.error( " Set?auto?commit?error! " );
    ?55 ??}

    ?56 ?}

    ?57 ?
    ?58 ? /**
    ?59 ??*?原來是采用配置文件確定構造方式,這里我只用一種構造方式,即conMode沒有起作用
    ?60 ??*? @param ?conMode?String
    ?61 ?? */

    ?62 ? private ? void ?init(String?conMode)? {
    ?63 ??drivers? = ?ConfigBundle.getString( " drivers " );
    ?64 ??url? = ?ConfigBundle.getString( " url " );
    ?65 ??user? = ?ConfigBundle.getString( " user " );
    ?66 ??password? = ?ConfigBundle.getString( " password " );
    ?67 ??jndiRoot? = ?ConfigBundle.getString( " jndi_root " );
    ?68 ??jndiName? = ?ConfigBundle.getString( " jndi_name " );
    ?69 ??
    ?70 ?? try ? {
    ?71 ????Class.forName(drivers);
    ?72 ????conn? = ?DriverManager.getConnection(url,?user,?password);
    ?73 ????stmt? = ?conn.createStatement();
    ?74 ??}
    ? catch ?(Exception?ex)? {
    ?75 ???logger.error( " Initialize?data?connection?error! " );
    ?76 ??}

    ?77 ?}

    ?78 ?
    ?79 ? /**
    ?80 ??*?@function?executeQuery
    ?81 ??*? @param ?sql??String
    ?82 ??*? @throws ?SQLException
    ?83 ??*? @return ?ResultSet
    ?84 ?? */

    ?85 ? public ?ResultSet?executeQuery(String?sql)? throws ?SQLException? {
    ?86 ?? if ?(stmt? != ? null )? {
    ?87 ??? return ?stmt.executeQuery(sql);
    ?88 ??}
    ? else ? {
    ?89 ??? return ? null ;
    ?90 ??}

    ?91 ?}

    ?92
    ?93 ? /**
    ?94 ??*?@function?executeUpdate
    ?95 ??*? @param ?sql??String
    ?96 ??*? @throws ?SQLException
    ?97 ?? */

    ?98 ? public ? void ?executeUpdate(String?sql)? throws ?SQLException? {
    ?99 ?? if ?(stmt? != ? null )? {
    100 ???stmt.executeUpdate(sql);
    101 ??}

    102 ?}

    103
    104 /**
    105 ??*?@function?setAutoCommit
    106 ??*? @param ?value?boolean
    107 ??*? @throws ?SQLException
    108 ?? */

    109 ? public ? void ?setAutoCommit( boolean ?value)? throws ?SQLException? {
    110 ?? this .conn.setAutoCommit(value);
    111 ?}

    112
    113 ? /**
    114 ??*?@function?commit
    115 ??*? @throws ?SQLException
    116 ?? */

    117 ? public ? void ?commit()? throws ?SQLException? {
    118 ?? this .conn.commit();
    119 ?}

    120
    121 ? /**
    122 ??*?@function?rollback
    123 ??*? @throws ?SQLException
    124 ?? */

    125 ? public ? void ?rollback()? throws ?SQLException? {
    126 ?? this .conn.rollback();
    127 ?}

    128
    129 ? /**
    130 ??*?@function?close
    131 ??*? @throws ?Exception
    132 ?? */

    133 ? public ? void ?close()? {
    134 ?? try ? {
    135 ??? if ?(rs? != ? null )? {
    136 ????rs.close();
    137 ????rs? = ? null ;
    138 ???}

    139 ??}
    ? catch ?(Exception?e)? {
    140 ???logger.error( " DBConnection?close?rs?error! " );
    141 ??}
    ? finally ? {
    142 ??? try ? {
    143 ???? if ?(stmt? != ? null )? {
    144 ?????stmt.close();
    145 ?????stmt? = ? null ;
    146 ????}

    147 ???}
    ? catch ?(Exception?e)? {
    148 ????logger.error( " DBConnection?close?stmt?error! " );
    149 ???}
    ? finally ? {
    150 ???? try ? {
    151 ????? if ?(prepstmt? != ? null )? {
    152 ??????prepstmt.close();
    153 ??????prepstmt? = ? null ;
    154 ?????}

    155 ????}
    ? catch ?(Exception?e)? {
    156 ?????logger.error( " DBConnection?close?prepstmt?error! " );
    157 ????}
    ? finally ? {
    158 ????? try ? {
    159 ?????? if ?(conn? != ? null )? {
    160 ???????conn.close();
    161 ???????conn? = ? null ;
    162 ??????}

    163 ?????}
    ? catch ?(Exception?e)? {
    164 ??????logger.error( " DBConnection?close?conn?error! " );
    165 ?????}

    166 ????}

    167 ???}

    168 ??}

    169 ?}

    170 }

    171
    172
    173

    這是個最簡單的,當然還可以添加其他內容,比如事務處理一組SQL...
    歡迎大家批評指正。

    Feedback

    # re: 我的DBConnection  回復  更多評論   

    2007-02-08 15:23 by 馬嘉楠
    ....
    Connection ,ResultSet , Statement

    這三個每次使用之后你都不進行關閉么?

    # re: 我的DBConnection  回復  更多評論   

    2007-02-10 12:04 by 東舟
    謝謝 馬嘉楠 的批評。

    但是調用程序里是這樣寫的:
    DBConnection db = DBConnection.getInstance();
    String strTitle = "";
    try {
    ResultSet rs = db.executeQuery("select name from TB_PAGEFRAME where type = '1'");
    while(rs.next()){
    strTitle = rs.getString("name");
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    db.close();
    }

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品欧洲精品| 亚洲αv久久久噜噜噜噜噜| 亚洲AV综合色区无码二区偷拍| 嫩草影院在线播放www免费观看| 亚洲欭美日韩颜射在线二| aaa毛片视频免费观看| 最新国产成人亚洲精品影院| 99久久免费精品高清特色大片| 亚洲Aⅴ无码专区在线观看q| 2020天堂在线亚洲精品专区| 中国在线观看免费国语版| 亚洲区日韩精品中文字幕| 国产麻豆免费观看91| 日本高清不卡中文字幕免费| 亚洲日韩精品无码一区二区三区| 人妻在线日韩免费视频| 亚洲韩国在线一卡二卡| 男人的好看免费观看在线视频| 噜噜综合亚洲AV中文无码| 亚洲午夜精品一级在线播放放 | 国产无遮挡吃胸膜奶免费看视频| 理论秋霞在线看免费| 91在线品视觉盛宴免费| 国产精品亚洲一区二区三区在线观看 | 亚洲成色www久久网站夜月| 免费观看男人吊女人视频| 亚洲成AV人片久久| 国产在线19禁免费观看| 久青草视频在线观看免费| 亚洲欧洲日产国码二区首页| 成人免费午间影院在线观看| 一级毛片无遮挡免费全部| 亚洲色欲色欲综合网站| 波霸在线精品视频免费观看| 又粗又大又猛又爽免费视频| 久久国产乱子伦精品免费午夜| 中文字幕亚洲第一在线| 国产精品免费一级在线观看| 精品免费tv久久久久久久| 亚洲夂夂婷婷色拍WW47| 亚洲桃色AV无码|