sql update语句不能从Java工作但是手动工作?

时间:2013-01-04 11:34:33

标签: 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时增加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查询时它可以工作吗?

1 个答案:

答案 0 :(得分:2)

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

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