java - 如何将 MySQL 查询存储到 Java 数组中?

标签 java mysql arrays

我在网上找到了将查询到的数据存储到 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/

相关文章:

mysql - 如何在 SQL 中使用 NULL 存储缺失的 FLOAT 值

php - 如何在 symfony2 中使用 doctrine findOneBy 方法返回数组而不是对象?

java - For循环和输出

java - 如何检查 int 是否包含字母

mysql - SQL - 表可以通过别名列/字段获得自己的名称吗?

javascript - 在 JavaScript 中查找两个日期数组之间的差异

java - 如何打印二维数组的结果

java - 有没有一种方法可以在不安装 Eclipse 的情况下运行 selenium Java 脚本?

java - 如何删除注册/添加的监听器?

php - 不允许我使用 where 子句插入值