我在网上找到了将查询到的数据存储到 ArrayList 中,然后将 ArrayList 转换为数组的建议。下面是我的代码,看来我没有正确执行此操作。 SQL 语法正确(我在我的 MySQL 中测试过)。关于如何更正我的代码的任何建议都会有所帮助,谢谢!
public static void dxNameExerciseID(){
//String dxName = name;
//String result = null;
try{
con = DriverManager.getConnection(url, user, password);
pst = con.prepareStatement("SELECT * FROM exercise,condition_exercise,diagnosis WHERE exercise.exercise_id = condition_exercise.exercise_id_fk AND condition_exercise.diagnosis_id_fk = diagnosis.diagnosis_id AND diagnosis.diagnosis_name = 'Adductor Strain';");
rs = pst.executeQuery();
ArrayList<String> list= new ArrayList<String>();
while (rs.next()) {
list.add(rs.getString("exercise_id"));
String[] result = new String[list.size()];
result = list.toArray(result);
for(int i =0; i<result.length; i++){
System.out.println(result[i]);
}
}
}catch(SQLException ex){
}finally {
try {
if (rs != null){
rs.close();
}
if (pst != null){
pst.close();
}
if (con != null){
con.close();
}
}catch(SQLException ex){
}
}
//return result;
最佳答案
这应该会更好。查看如何通过遍历 ResultSet 来首先创建字符串的 ArrayList,一旦列表完成,您就可以创建字符串数组。
ArrayList<String> list= new ArrayList<String>();
while (rs.next()) {
list.add(rs.getString("exercise_id"));
}
String[] result = new String[list.size()];
result = list.toArray(result);
for(int i =0; i<result.length; i++){
System.out.println(result[i]);
}
顺便说一句:你的 finally block 是不安全的。如果 rs.close() 失败,您将不会关闭连接。
关于java - 如何将 MySQL 查询存储到 Java 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15912015/