选择count返回0 mysql JDBC

时间:2014-03-20 19:28:44

标签: mysql select jdbc count procedures

我试图存储消息,所以我用HeidiSql在mysql中创建了2个表,第一个是msg,第二个是用户。我写了一个存储过程来获取作为发送者的第一个参数的消息数,作为第二个参数的接收者,反之,我将此值存储在id变量中。我需要变量来计算2个人之间的消息。当我从java运行应用程序时,我总是得到id = 0。我无法理解这个错误。

...

sql="call getIdMsg(?,?,?)";
sql2="call addRecord(?,?,?,?)";

try (Connection conn= DriverManager.getConnection(db_url,username,password);
         CallableStatement statement = conn.prepareCall(sql);
         CallableStatement statement2 = conn.prepareCall(sql2)){

        statement.setInt(1,sender);
        System.out.println(sender);
        statement.setInt(2,recipient);
        System.out.println(recipient);
        statement.registerOutParameter(3, Types.INTEGER);
        statement.execute();
        id=statement.getInt(3);

        System.out.println("ID is: "+id);

        statement2.setInt(1,sender);
        statement2.setInt(2,recipient);
        statement2.setInt(3,id);
        statement2.setString(4,msg);
        statement2.execute();
        System.out.println("The record is been added");
    }
    catch (SQLException sqle){sqle.printStackTrace();}
...

这是我的sql代码:

BEGIN
set @id = ((select count(*) from msg WHERE sender = @thisrecipient and recipient = @thissender)+(SELECT COUNT(*) FROM msg WHERE sender = @thissender and recipient = @thisrecipient));
END

这些是我的参数:

  1. thissender INT IN

  2. 此收件人INT IN

  3. id INT OUT

  4. 你能帮我吗?

0 个答案:

没有答案