<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();
    }

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


    網站導航:
     
    主站蜘蛛池模板: 最近免费中文字幕大全视频 | 久久电影网午夜鲁丝片免费| 国产午夜亚洲精品国产| 免费A级毛片无码A| 免费网站看av片| 亚洲免费综合色在线视频| 亚洲色图综合在线| 亚洲毛片在线免费观看| 国产99久久亚洲综合精品| 亚洲AV人人澡人人爽人人夜夜| 国产成人免费网站| 中文字幕在线免费播放| 亚洲av日韩av综合| 亚洲欭美日韩颜射在线二| 黄页网站在线观看免费高清| 又粗又长又爽又长黄免费视频| 亚洲理论在线观看| 久久精品国产亚洲Aⅴ香蕉| 中文字幕无码播放免费| 国产黄色片免费看| 亚洲欧美第一成人网站7777| 久久九九亚洲精品| 日韩亚洲国产二区| 永久免费的网站在线观看| 一个人免费视频观看在线www| 亚洲日韩一区二区三区| 亚洲国产香蕉碰碰人人| 免费在线看片网站| 好吊妞在线新免费视频| 无码日韩精品一区二区三区免费| 成年网在线观看免费观看网址| 国产v亚洲v天堂a无| 亚洲国产人成网站在线电影动漫| 亚洲av无码乱码在线观看野外| 福利免费观看午夜体检区| 日韩在线不卡免费视频一区| 九九全国免费视频| 国产成人亚洲午夜电影| 亚洲精品天堂成人片AV在线播放 | 亚洲人成综合网站7777香蕉| 91亚洲国产成人久久精品网站|