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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何擺脫第二個參數(shù)?

如何擺脫第二個參數(shù)?

犯罪嫌疑人X 2023-03-09 13:58:41
我創(chuàng)建了一個方法 ( getData()) 來從數(shù)據(jù)庫接收數(shù)據(jù),這似乎有效。我想要的是只使用 1 個參數(shù),所以該方法應該以className.getData("SELECT * FROM myTable"). 我怎樣才能做到這一點?public List<String> getData(String sql, Map column) {    this.driver();    try {        Connection conn = DriverManager.getConnection(this.url);        Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery(sql);        List<String> result = new ArrayList<>();        if (column.containsKey("string")) {            for (Object i : column.values()) {                while (rs.next()) {                    result.add(rs.getString(String.valueOf(i)));                }            }            return result;        }    }    catch (SQLException e) {        e.printStackTrace();    }    return null;}private void driver() {    // Ensure we have mariadb Driver in classpath    try {        Class.forName("org.mariadb.jdbc.Driver");    }    catch (ClassNotFoundException e) {        e.printStackTrace();    }}
查看完整描述

2 回答

?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

當然,您不需要將列名作為參數(shù)傳遞。JDBC 允許您從元數(shù)據(jù)中獲取列名。就像下面一樣


ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");

ResultSetMetaData rsmd = rs.getMetaData();

Integer colunNum = rsmd.getColumnCount();

for(int i =0; i < columnNum; i ++){

    String colmnName = rsmd.getColumnName(i);

    ....

}

歸功于:從 java.sql.ResultSet 中檢索列名


查看完整回答
反對 回復 2023-03-09
?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

在類實例化中調(diào)用驅(qū)動方法。


static {

    // Ensure we have mariadb Driver in classpath

    try {

        Class.forName("org.mariadb.jdbc.Driver");

    }

    catch (ClassNotFoundException e) {

        e.printStackTrace();

    }

}

你也應該關(guān)閉你的資源。您可以使用try-with-resources來做到這一點。


public List<String> getData(String sql, Map column) {

    try (

        Connection conn = DriverManager.getConnection(this.url);

        Statement stmt = conn.createStatement();

        ResultSet rs = stmt.executeQuery(sql);

     ){

        List<String> result = new ArrayList<>();

        if (column.containsKey("string")) {

            for (Object i : column.values()) {

                while (rs.next()) {

                    result.add(rs.getString(String.valueOf(i)));

                }

            }

            return result;

        }


    }

    catch (SQLException e) {

        e.printStackTrace();

    }

    return null;

}


查看完整回答
反對 回復 2023-03-09
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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