2

编辑:我有一封信,现在正在工作。

我有以下sql语句

UPDATE names set sent_count = sent_count + 1  where user_name = 'name' AND category = 'test' AND service = 'test'

这可以通过每次从 PGAdmin3 运行 sql 时增加 sent_count 来工作,但是我在使用 Postgresql JDBC 的 Java 程序中有以下方法,它没有抛出任何异常,但它没有增加 sent_count 这里是下面的方法

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 查询时它起作用吗?

4

1 回答 1

2

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

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

于 2013-01-04T13:41:23.800 回答