<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 東舟 閱讀(1212) 評論(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協(xié)議的連接池驅(qū)動時,?AutoCommit缺省為false,?造成多處數(shù)據(jù)未提交
    ?51 ?? try ? {
    ?52 ???setAutoCommit( true );
    ?53 ??}
    ? catch ?(Exception?ex)? {
    ?54 ???logger.error( " Set?auto?commit?error! " );
    ?55 ??}

    ?56 ?}

    ?57 ?
    ?58 ? /**
    ?59 ??*?原來是采用配置文件確定構(gòu)造方式,這里我只用一種構(gòu)造方式,即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

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

    Feedback

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

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

    這三個每次使用之后你都不進行關(guān)閉么?

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

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

    但是調(diào)用程序里是這樣寫的:
    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();
    }

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 一级毛片aa高清免费观看| 国产成人免费A在线视频| 一级做α爱过程免费视频| 2020国产精品亚洲综合网| 亚洲av永久无码精品秋霞电影影院 | 亚洲电影免费观看| 亚洲一区二区三区偷拍女厕| 国产男女猛烈无遮挡免费视频 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲一区二区三区亚瑟| 亚洲AV永久无码精品水牛影视 | 中文字字幕在线高清免费电影| 亚洲精品无码久久| 国产精品亚洲四区在线观看| 亚洲一区二区三区首页| 亚洲永久精品ww47| 中文字幕亚洲日韩无线码| 免费国产a国产片高清| 在线免费一区二区| 毛片a级三毛片免费播放| 国产精品永久免费10000| 2019中文字幕在线电影免费 | 亚洲国产精品无码专区在线观看 | 免费观看又污又黄在线观看| 亚洲精品欧美综合四区| 亚洲夂夂婷婷色拍WW47| 亚洲综合欧美色五月俺也去| 一本色道久久88—综合亚洲精品| 久久精品亚洲AV久久久无码| 亚洲天堂福利视频| 亚洲精品国产精品国自产网站| 亚洲成年人电影网站| 亚洲一级毛片免费看| 亚洲日韩中文字幕一区| 亚洲爆乳大丰满无码专区| 色天使色婷婷在线影院亚洲| 日韩亚洲人成网站| 一级毛片在线免费视频| 99热在线日韩精品免费| 久久免费高清视频| 91精品免费国产高清在线|