sql update语句不是从Java运行的,而是手动运行的?
编辑:我收到了一封信,现在可以用了 我有下面的sql语句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
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-可能是指调试器?