【问题标题】:Resultset not working in Mysql结果集在 Mysql 中不起作用
【发布时间】:2015-11-13 06:48:48
【问题描述】:

我有一张这样的桌子

注册表

Login_id   Address  User_type  state 

    1      Ansari     s        Alaska
    2      Rajesh     b        Rameshwaram

String retrieve_query="select User_type from Signup where State="Alaska";                           
ResultSet rs1=st.executeQuery(retrieve_query);

String User_type=rs1.getString("User_type");//I expect "S" to be the User_type

但我得到以下异常

发生异常 java.sql.SQLException: ResultSet 关闭后不允许操作

【问题讨论】:

  • 执行查询从数据库返回一个数组,你必须获取它并迭代
  • @Laurentiu 我直接在我的选择语句中使用条件,所以我不想迭代。我想要确切的 ResultSet rs1 而不迭代。你能建议
  • 我假设 String retrieve_query="select User_type from Signup where State="Alaska"; 不是实际的 SQL,因为它不会通过编译。
  • @VijayIndi​​a 正如我的回答中提到的,您缺少rs1.next()
  • 是的,在这里查看stackoverflow.com/a/21476846/3270074

标签: java mysql


【解决方案1】:

你错过了rs1.next()

String User_type=null;
if (rs1.next()) 
    User_type = rs1.getString("User_type");

【讨论】:

    【解决方案2】:

    你应该尝试像这样使用prepared statement

    PreparedStatement ps;
    ResultSet rs;
    String user_type=null;
    ps = con.prepareStatement("select User_type from Signup where State='?'");
    ps.setString(1, "Alaska");
    rs = ps.executeQuery();
    if (rs.next()) 
       user_type = rs.getString("User_type");
    

    【讨论】:

      【解决方案3】:

      尝试将您的查询替换为:

      String retrieve_query="select User_type from Signup where State='Alaska'";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多