2 回答

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 中檢索列名

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;
}
添加回答
舉報