【问题标题】:Query does not return output查询不返回输出
【发布时间】:2013-07-30 16:13:33
【问题描述】:

我正在编写一个程序,当用户使用单选按钮选择某个选项时,会分配参数和 sql 语句:

if(r1.isSelected())//SNo
    {
        cmd="SELECT * FROM CALLDETAILS WHERE SNo=?";
        parameter=tf1.getText();

    }
    else if(r2.isSelected())//Month-wise
    {
        cmd="SELECT SNO, DATE, COMPANY,STATUS FROM CALLDETAILS WHERE MONTH(DATE)=?";
        parameter=tf1.getText();
    }
    else if(r2.isSelected())//Username
    {
        cmd="SELECT * FROM CALLDETAILS WHERE ATTENDED_BY=?";
        parameter=tf1.getText();
    }
    else if(r3.isSelected())//Company
    {
       cmd="SELECT * FROM CALLDETAILS WHERE COMPANY=?";
        parameter=tf1.getText();
    }
    else//Status
    {
        cmd="SELECT * FROM CALLDETAILS WHERE Status=?";//Resolved. in process, pending
        parameter=tf1.getText();            
    }

当我运行这个时:

try
    {

        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/tenderdetails?user=root&password=");
        PreparedStatement ps;
        ps=con.prepareCall(cmd);
        ps.setString(1,parameter);

        ResultSet rs=ps.executeQuery();       

        while(rs.next())
        {
            int sno=rs.getInt(1);
            Timestamp dt=rs.getTimestamp(2);           
            System.out.println(sno+ "  "+dt);//HERE!
        }

        con.close();
        System.out.println("here too");
    }

    catch(SQLException se)
    {
        JOptionPane.showMessageDialog(this, "Error: "+se.getMessage());
    }

标记为 HERE 的语句没有输出。这是为什么?

【问题讨论】:

  • 因为你的 SQL 语句没有返回任何命中...
  • 您的查询似乎没有返回任何内容(while 循环根本没有执行)。
  • 你有没有抛出异常?
  • 但是我的数据库正在返回值,否则......在 mysql 服务器中。
  • 太好了,谢谢! getConnection 解决了它! xD

标签: java mysql netbeans


【解决方案1】:

您的陈述似乎不一定符合您的想法;

else if(r2.isSelected())//Month-wise   // <-- r2
{
    cmd="SELECT SNO, DATE, COMPANY,STATUS FROM CALLDETAILS WHERE MONTH(DATE)=?";
    parameter=tf1.getText();
}
else if(r2.isSelected())//Username     // <-- r2 again...? Won't ever be hit.

此外,虽然很可能不是您的问题,getInt(1)getTimestamp(2) 似乎与 SELECT * 有点危险。

【讨论】:

  • 我打算更改 SELECT *.那只是为了让代码运行。
【解决方案2】:

检查getConnection() 字符串和您的查询/准备语句。

由于它没有返回任何结果,因此问题很可能在这里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多