我在网上找到了建议,将查询的数据存储到ArrayList中,然后将ArrayList转换为数组。下面是我的代码,看来我没有正确地做到这一点。 SQL语法是正确的(我在我的MySQL中测试过)。有关如何更正我的代码的任何建议将有所帮助,谢谢!如何将MySQL查询存储到Java数组中?
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;
}
感谢创造
Array
!我如何确保我的“finally”块?我仍然是这方面的初学者。 – user2221016 2013-04-09 21:07:54您需要将每个xxx.close()包装在自己的try/catch中,以确保如果出现故障,它不会停止执行并让所有其他资源打开。看看这个:http://stackoverflow.com/questions/4507440/must-jdbc-resultsets-and-statements-be-closed-separately-although-the-connection – vptheron 2013-04-09 21:11:38
谢谢你,那个链接是一个很好的解释。 – user2221016 2013-04-09 21:21:29