Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从存储过程返回结果集?_Java_Stored Procedures_Jdbc_Derby - Fatal编程技术网

Java 如何从存储过程返回结果集?

Java 如何从存储过程返回结果集?,java,stored-procedures,jdbc,derby,Java,Stored Procedures,Jdbc,Derby,我创建了一个存储过程,可以从中获取插入到以下文本字段中的所有数据。如何通过调用Callable语句来获取所有这些数据?我认为这是比基于我阅读的批处理语句更简单的方法。我只拖放以下组件只是一个练习的目的 存储过程 CREATE PROCEDURE show_data(OUT FULLNAME VARCHAR(50), OUT ADDRESS VARCHAR(50)) PARAMETER STYLE JAVA LANGUAGE JAVA READS SQL DATA DYNAMIC RESULT S

我创建了一个存储过程,可以从中获取插入到以下文本字段中的所有数据。如何通过调用Callable语句来获取所有这些数据?我认为这是比基于我阅读的批处理语句更简单的方法。我只拖放以下组件只是一个练习的目的

存储过程

CREATE PROCEDURE show_data(OUT FULLNAME VARCHAR(50), OUT ADDRESS VARCHAR(50))
PARAMETER STYLE JAVA
LANGUAGE JAVA
READS SQL DATA
DYNAMIC RESULT SETS 1
EXTERNAL NAME 'Frame.searchButton'
我使用OUT参数来使用getXXX()方法检索值。我只是有点困惑,因为这是我第一次在derby中使用存储过程

GUI

用户在数据库中搜索以下记录后。如果该值存在,它将打印到指定的文本字段

源代码

    String searchRecord = searchTf.getText();

    String searchQuery = "SELECT * FROM SAMPLEONLY";
    ResultSet data[] = null;//Why should I use this array?

    try (Connection myConn = DriverManager.getConnection(url, user, pass);
        PreparedStatement myPs = myConn.prepareStatement(searchQuery);)
        {
            String addFullname = fullnameTf.getText();//first field
            String addAddress = addressTf.getText();//second field

            data[0] = myPs.executeQuery();

            CallableStatement cs = myConn.prepareCall("{ call showData(?, ?)}");

            cs.setString(1, addFullname);
            cs.setString(2, addAddress);

            boolean hasResults = cs.execute();
            if (hasResults) {
            ResultSet rs = cs.getResultSet();
            while (rs.next()) {
                String getFullname = rs.getString(1);//get the value
                String getAddress = rs.getString(2);

                fullnameTf.setText(getFullname);//set the text here
                addressTf.setText(getAddress);  
            }//end of while
            rs.close();//close the resultset
        }//end of if
    }//end of try
        catch (SQLException e) 
        {
            e.printStackTrace();
        }
    }//end of else
}

在搜索文本字段中插入后,它会向我抛出一个错误NullPointerExection。我遵循Derby参考手册,这样我就可以有一个编写正确存储过程的指南。这段代码大部分是我写的。如果我错过了什么错误,请引导我。请随意评论,谢谢。

使用
数据[0]
时,数据
。如何从数据库检索数据?谢谢