JDBC SQL使用多行执行查询

时间:2017-10-04 19:21:19

标签: java sql-server jdbc

我刚刚开始将JDBC集成到我的工作中。

我正在尝试在JDBC中执行以下SQL行。

DECLARE @a int 
SET @a = 1 
    UPDATE ptable SET p = @a, @a=@a+1   WHERE joined = 1

Java代码如下所示:

c = "DECLARE @a int "
+ "SET @a = 1 "
+ "UPDATE ptable SET p = @a, @a=@a+1 WHERE joined = 1";
    try {
        stmt.executeQuery(c);
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我不确定我是否使用了错误的方法。基本上我有一个存储整数值的列p,无论单元格中的数字是多少,我都希望每行增加1。当我尝试以增量更新每一行时,它会占用第一行并将每一行设置为相同的值,而不是逐个递增。

1 个答案:

答案 0 :(得分:0)

您的sql查询看起来不正确您要完成的任务(我假设您使用的是sql server)。如果你想将每一行增加1,无论单元格中的数字是什么,你的查询都应如下所示:

DECLARE @a int 
SET @a = 1 
    UPDATE ptable SET p = p + @a
    WHERE joined = 1

你想取p并递增1,在这种情况下,我不确定为什么你需要变量@a你只能使用1

UPDATE ptable SET p = p + 1
WHERE joined = 1

在java代码中,它看起来像:

c = "UPDATE ptable SET p = p + 1\n"
    "WHERE joined = 11";
try {
    stmt.executeQuery(c);
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}