sql update语句不是从Java运行的,而是手动运行的?

sql update语句不是从Java运行的,而是手动运行的?,java,sql,postgresql,jdbc,Java,Sql,Postgresql,Jdbc,编辑:我收到了一封信,现在可以用了 我有下面的sql语句 UPDATE names set sent_count = sent_count + 1 where user_name = 'name' AND category = 'test' AND service = 'test' 这是通过每次从PGAdmin3运行sql时增加发送计数来实现的,但我在使用Postgresql JDBC的Java程序中使用了以下方法,它不会引发任何异常,但不会增加发送计数以下是方法 public void i

编辑:我收到了一封信,现在可以用了

我有下面的sql语句

UPDATE names set sent_count = sent_count + 1  where user_name = 'name' AND category = 'test' AND service = 'test'
这是通过每次从PGAdmin3运行sql时增加发送计数来实现的,但我在使用Postgresql JDBC的Java程序中使用了以下方法,它不会引发任何异常,但不会增加发送计数以下是方法

public void increaseUsernameResponseCount(String userName, String category, String service, String country) throws SQLException
{
    Connection conn = null;
    PreparedStatement pst = null;
    // ResultSet rs = null;

    try
    {
        Class.forName("org.postgresql.Driver");
        conn = DriverManager.getConnection(url, props);
        pst = conn.prepareStatement("UPDATE names set sent_count = sent_count + 1  where user_name = ? AND category = ? AND service = ?");
        pst.setString(1, userName);
        pst.setString(2, category);
        pst.setString(3, service);

        int count = pst.executeUpdate();
        System.out.println(count);

    }
    catch (Exception e)
    {
        System.out.println(e);
    }
    finally
    {
        pst.close();
        conn.close();
    }
}

运行此方法时,计数计数器打印0。你知道为什么它在方法中不起作用,但在执行sql查询时起作用吗?

检查是否有两个数据库包含同一个表。如果您在两个不同的位置工作,并且在从转储导入数据库时不断更改数据库名称,则通常会发生这种情况


还要检查数据库中的“url”和“props”字符串是否正确。

我认为您已经绝对确保
用户名
类别
服务
与您的pgadmin会话中的完全相同?使用
系统输出.println
打印用户名、类别、,服务。当然,请确保您连接的是同一个数据库,而不是某个UAT副本或其他东西(已存在:)。请尝试使用探查器浏览发送到DB的sql命令。@Hamlet Hakobyan-可能是指调试器?