簡體   English   中英

Jdbc 使用 java 連接

[英]Jdbc connection using java

我在 java 有 Rest-Api。

這將采用 dbUrl、dbUserName、dbPassWord、dbDriver 和 sql 查詢

並給我結果集,然后我將轉換為 json 格式。

Class.forName("oracle.jdbc.driver.OracleDriver");
connectionUrl = "jdbc:oracle:thin:@" + server + ":" + dbName + "";
conn = DriverManager.getConnection(connectionUrl, userName, password);
try {
    stmt = conn.createStatement();
    output = resultSetHandler(stmt.executeQuery(query)); // this method convert ResultSet to Json
    } catch (SQLException e) {
        throw new Error(e);
    } finally {
        if (stmt != null) {
            stmt.close();
        }
    }
} catch (SQLException e) {
    throw new Error(e);
} finally {
    try {
        if (conn != null) {
            conn.close();
        }
    } catch (SQLException ex) {
        throw new Error(ex);
    }
}

這里的問題是,當 30 個用戶同時使用這個 api 時,這意味着它會為少數用戶拋出一個錯誤……而且我不會只使用 oracle,我還會使用 postgres,mysql

  1. 考慮使用 DB 連接池,例如HikariC3P0 (均可在 Maven Repository 獲得)。 每次都打開一個連接是非常低效的,你可能會用完連接,這可能是你得到的錯誤。 請發布您的錯誤。
  2. 使用 try-with-resources 而不是執行 finally 塊。 它會自動調用可自動關閉對象的 close(),例如 Connection、Statement、PreparedStatement、ResultSet 等。
 try ( Connection myConnection = MyConnectionPool.getConnection(); Statement stmt = myConnection.createStatement(); ResultSet rs = stmt.executeQuery(query) ) { // Do work with rs }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM