java - 结果集开始之前

标签 java mysql jdbc

我想在一个jsp页面中显示两个表的数据。我收到以下错误。你能解释一下这个错误吗?

java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1058)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:972)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:958)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:903)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:854)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5772)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5692)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5732)
at jsp_servlet.__userhome._jspService(__userhome.java:149)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)
at   weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3432)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

更新: 这是导致错误的代码

     PreparedStatement pstm = null;
     String sql = "select * from owner";
     pstm = con.prepareStatement(sql);
     ResultSet rs = pstm.executeQuery();
     ResultSet firstrs=rs;
     String tname=rs.getString("tablename");
     String sql1="SELECT * FROM "+tname;
     Statement stmt=con.createStatement();
     ResultSet rs1=stmt.executeQuery(sql1);
     ResultSetMetaData rsmd=rs1.getMetaData();

最佳答案

PreparedStatement pstm = null;
String sql = "select * from owner";
pstm = con.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
ResultSet firstrs=rs;
String tname="";
while(rs.next())//You have to write resultset like this because if result set is empty then it will gaves an error
{
    tname=rs.getString("tablename");
    tname+=",";
}
if(!tname.equal(""))
{
    String sql1="SELECT * FROM "+tname;///It select multiple tables results
    Statement stmt=con.createStatement();
    ResultSet rs1=stmt.executeQuery(sql1);
    ResultSetMetaData rsmd=rs1.getMetaData();
}

关于java - 结果集开始之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241927/

相关文章:

java - 无法使用 application.properties 设置值

php - 如何修复这个 mysql 查询?

mysql - 可以在 Yii 中修复外键而无需在数据库中设置它吗?

java - 将组合框转换为字符串

hadoop - Hiveserver2 无法从远程连接获取查询结果

java - Java 中 dt.jar 文件的功能是什么?

java - 如何修改某些数组元素而不影响其他元素?

PHP计算用户点击次数

java - 如何打印出将发送到 oracle 的 sql 查询

java - 从 java : why does it hang the process? 恢复 Mysql 转储