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();