Java 如何使用getObject方法从结果集中获取结果?

Java 如何使用getObject方法从结果集中获取结果?,java,jdbc,resultset,Java,Jdbc,Resultset,我正在尝试获取结果集的结果,其中我将第二个参数注册为INTEGER。根据我读到的内容,在使用结果集检索对象之前,我应该先获取对象 代码 try (Connection myConn = DBUtil.connect(); CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}")) { myFirstCs.setString(1,

我正在尝试获取结果集的结果,其中我将第二个参数注册为
INTEGER
。根据我读到的内容,在使用结果集检索对象之前,我应该先获取对象

代码

try (Connection myConn = DBUtil.connect();
             CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}"))
        {
             myFirstCs.setString(1, searchSection);
             myFirstCs.registerOutParameter(2, Types.INTEGER);
             myFirstCs.executeUpdate();

             String name = null;

             System.out.println(myFirstCs.getObject(2));

            ResultSet myRs = null;
            myRs = (java.sql.ResultSet)myFirstCs.getObject(2);
            while (myRs.next()) // Retrieve result set rows
            {                  
                name=myRs.getString(1);
                System.out.print("Section Name: "+name);
            }
            myRs.close(); 
这是检索结果集的正确方法吗?我使用try with resource尝试此方法。我在这里遗漏了一些东西
ResultSet myRs=myFirstCs.getObject(2,type)
我不知道我将在第二个参数中添加什么

仅样本

try (ResultSet myRs = myFirstCs.getObject(2, type))//What should I put here?
              {
                  while (myRs.next())
                  {
                      name = myRs.getString(1);
                      System.out.print("Section Name: "+name);
                  }//end of while
              }

请随意评论。任何帮助都将不胜感激。谢谢。

@Mia以下是两个答案,我认为其中一个应该有效-

try (Connection myConn = DBUtil.connect();
         CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}"))
    {
         myFirstCs.setString(1, searchSection);
         myFirstCs.registerOutParameter(2, Types.INTEGER);
         myFirstCs.executeUpdate();

         String name = myFirstCs.getObject(2);
            System.out.print("Section Name: "+name);
    }


isnt
myFirstCs.getInt(2)
working??第二个参数将是sqlType,您可以从oracle文档中检查它。。。sqlType—由java.sql.Types定义的JDBC类型代码。如果参数是JDBC类型的NUMERIC或DECIMAL,则应使用接受刻度值的registerOutParameter版本。说真的,这是您先前问题的重复,稍加修改。我需要每天关闭它们吗?这会给我一个错误,
Integer不能转换为java.sql.ResultSet
@Mia Legaspi我用两个代码更新了答案,。试试这些代码。它给了我一个
NullPointerException
try (Connection myConn = DBUtil.connect();
         CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}"))
    {
         myFirstCs.setString(1, searchSection);
         myFirstCs.registerOutParameter(2, Types.INTEGER);
         myFirstCs.executeUpdate();

         String name = null;

         System.out.println(myFirstCs.getObject(2));

        ResultSet myRs = null;
        myRs = myFirstCs.getResultSet();
        while (myRs.next()) // Retrieve result set rows
        {                  
            name=myRs.getString(1);
            System.out.print("Section Name: "+name);
        }
        myRs.close();