第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用Java關(guān)閉數(shù)據(jù)庫連接

用Java關(guān)閉數(shù)據(jù)庫連接

RISEBY 2019-07-10 14:39:36
用Java關(guān)閉數(shù)據(jù)庫連接我有點(diǎn)糊涂了,我正在讀下面的文章http:/en.wikipara.org/wiki/java_Database_ConnectivityConnection conn = DriverManager.getConnection(      "jdbc:somejdbcvendor:other data needed by some jdbc vendor",      "myLogin",      "myPassword" );Statement stmt = conn.createStatement();try {     stmt.executeUpdate( "INSERT INTO MyTable( name ) VALUES ( 'my name' ) " );} finally {     //It's important to close the statement when you are done with it     stmt.close();}不需要關(guān)閉Conn連接嗎?如果連接()沒有發(fā)生,到底會(huì)發(fā)生什么呢?我有一個(gè)私人網(wǎng)絡(luò)應(yīng)用程序,我認(rèn)為它目前沒有關(guān)閉任何一種形式,但重要的是真正的一個(gè),康涅狄格,還是兩者兼而有之?該網(wǎng)站一直斷斷續(xù)續(xù)地關(guān)閉,但服務(wù)器一直說這是一個(gè)數(shù)據(jù)庫連接問題,我懷疑它沒有被關(guān)閉,但我不知道誰關(guān)閉,如果有的話。
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

當(dāng)你用完你的Connection,您需要顯式地關(guān)閉它,方法是調(diào)用它的close()方法以釋放任何其他數(shù)據(jù)庫資源(游標(biāo)、句柄等)。

實(shí)際上,Java中的安全模式是關(guān)閉ResultSetStatement,和Connection(按該順序)finally當(dāng)你和他們?cè)谝黄鸬臅r(shí)候阻止他們,就像這樣:

Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {
    // Do stuff
    ...} catch (SQLException ex) {
    // Exception handling stuff
    ...} finally {
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) { /* ignored */}
    }
    if (ps != null) {
        try {
            ps.close();
        } catch (SQLException e) { /* ignored */}
    }
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) { /* ignored */}
    }}

這個(gè)finally塊可以稍微改進(jìn)為(以避免空檢查):

} finally {
    try { rs.close(); } catch (Exception e) { /* ignored */ }
    try { ps.close(); } catch (Exception e) { /* ignored */ }
    try { conn.close(); } catch (Exception e) { /* ignored */ }}

但是,這仍然非常冗長(zhǎng),因此您通常會(huì)使用幫助類來關(guān)閉空安全助手方法中的對(duì)象,而finally區(qū)塊變成了這樣的東西:

} finally {
    DbUtils.closeQuietly(rs);
    DbUtils.closeQuietly(ps);
    DbUtils.closeQuietly(conn);}

實(shí)際上,ApacheCommonsDbUtils有一個(gè)DbUtils類,因此不需要編寫自己的類。


查看完整回答
反對(duì) 回復(fù) 2019-07-10
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

僅僅關(guān)閉就足夠了StatementConnection..不需要顯式關(guān)閉ResultSet對(duì)象。

Java文檔說java.sql.ResultSet:

當(dāng)語句對(duì)象關(guān)閉、重新執(zhí)行或用于從多個(gè)結(jié)果序列檢索下一個(gè)結(jié)果時(shí),生成該語句對(duì)象的語句對(duì)象將自動(dòng)關(guān)閉ResultSet對(duì)象。


謝謝BalusC的評(píng)論:“我不相信這一點(diǎn)。有些JDBC驅(qū)動(dòng)程序在這方面失敗了?!?/strong>


查看完整回答
反對(duì) 回復(fù) 2019-07-10
  • 3 回答
  • 0 關(guān)注
  • 1010 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)