【问题标题】:How to get the Primary Key value after Select using Stored Procedure?使用存储过程选择后如何获取主键值?
【发布时间】:2016-07-10 07:54:18
【问题描述】:

如何获取数据中现有主键 ID 的值?我试图选择一个数据,但它没有得到我当前表中的值。 当我尝试搜索现有记录时。它打印到文本字段。此外,当我搜索不存在的记录时,它仍会打印到文本字段。我错过了什么吗?

不存在的记录

表格

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

存储过程

CREATE PROCEDURE getSECTION_NAME (IN SECTION_NAME VARCHAR(50))
SELECT SECTION_NAME FROM allsections_list

数据

代码

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.setString(1, searchSection);//Get value of Section_SearchSection_Textfield

                myFirstCs.executeQuery();

            try (ResultSet myRs = myFirstCs.executeQuery())
            {
                int resultsCounter = 0;
                while (myRs.next())
                {
                    String getSection_Name = myRs.getString(1);
                    sectionID = myRs.getInt("SECTION_ID");

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

                    System.out.print(sectionID);
                    resultsCounter++;

                }//end of while
                }//end of resultset
            }//end of callablestatement
        }//end of connection
        catch (SQLException e) 
        {
            DBUtil.processException(e);
        }  
}

任何帮助或提示将不胜感激!谢谢!

【问题讨论】:

    标签: java mysql stored-procedures jdbc


    【解决方案1】:

    您的过程定义中只有一个 IN 参数。您可以使用 OUT 参数,在过程中设置它并在执行后选择它以获得结果,如下所示:mysql manual

    在第一个例子中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-23
      • 2016-07-03
      • 1970-01-01
      • 2017-01-18
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多