2

Callable ステートメントを介してストアド プロシージャを使用して既存のデータを取得するにはどうすればよいですか? 最初のパラメーターはSECTION_ID (主キー) 用で、2 番目のパラメーターはSECTION_NAME用です。どこが間違っているのかわかりません。ストアドプロシージャを書いているのかもしれません。これが私のストアドプロシージャです。間違っている場合は修正してください。

ストアド プロシージャ

DELIMITER @@
DROP PROCEDURE getSECTION_NAME @@
CREATE PROCEDURE enrollmentdb.getSECTION_NAME
(IN ID INT, OUT NAME VARCHAR(50))
BEGIN
   SELECT SECTION_NAME INTO NAME FROM allsections_list WHERE SECTION_ID = ID; 
END @@ 
DELIMITER ;

テーブル

CREATE TABLE allsections_list
(
SECTION_ID INT PRIMARY KEY AUTO_INCREMENT,
SECTION_NAME VARCHAR(50) NOT NULL
)

コード

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String searchSection = Section_SearchSection_Textfield.getText();
    String searchSection_Name = Section_SectionName_TextField.getText();
    int sectionID = 0;
    if (searchSection.isEmpty())
    {
        JOptionPane.showMessageDialog(null, "Please fill up this fields");
    }
    else 
        try (Connection myConn = DBUtil.connect())
        {   
            try (CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}"))
            {
                myFirstCs.setInt(1, sectionID);// I set the ID for Primary Key
                myFirstCs.registerOutParameter(2, Types.VARCHAR);
                myFirstCs.setString(2, searchSection_Name);


                boolean hasresults = myFirstCs.execute();

            if (hasresults)
            {
            try (ResultSet myRs = myFirstCs.getResultSet())
            {
                while (myRs.next())
                {
                    sectionID = myRs.getInt("SECTION_ID");
                    String getSection_Name = myRs.getString(2);

                    Section_SectionName_TextField.setText(getSection_Name);//Set the value of text
                    Section_SectionName_TextField.setEnabled(true);//Set to enable

                    System.out.print(sectionID);
                }//end of while
            }//end of resultset
            }//end of if
            }//end of callablestatement
        }//end of connection
        catch (SQLException e) 
        {
            DBUtil.processException(e);
        }

}

プロジェクトを実行して既存のデータを挿入しようとすると。それは何も示していません。私がショーに望む価値を印刷しません。ヘルプやヒントをいただければ幸いです。:)

4

0 に答える 0