gpt4 book ai didi

Java resultSet getInt() 无返回值

转载 作者:行者123 更新时间:2023-12-01 23:29:07 28 4
gpt4 key购买 nike

在这里,resultSet.getInt() 不起作用,但我不知道我的代码出了什么问题。

我想增加列的值(名称为变量“出勤”)。使用 SELECT 语句我想读取当前值,通过使用 UPDATE 我想将相应的值增加 1。但问题是 int a = r.getInt("'"+ attend + "'");不起作用。尽管当前值不是 0(例如 1),但它始终返回值 0。我的代码有什么问题吗?

try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:"+ x +".db");
s = c.createStatement();
r = s.executeQuery("SELECT '" + attendance + "' FROM viewer WHERE name = '" + name + "' AND year = '" + year + "'");
while (r.next()){
int a = r.getInt("'" + attendance + "'");
int b = 1 + a;
String sql = "UPDATE viewer SET '" + attendance + "' = ? WHERE name = ? AND year = ? ";
p = c.prepareStatement(sql);
p.setInt (1,b);
p.setString (2,name);
p.setInt (3,year);
p.executeUpdate();
}
p.close();
c.close();
// r.getInt() value always 0
}
catch (ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, e);
}

最佳答案

由于您将列名括在单引号中,因此它被视为字符串文字 'attendance' 而不是作为变量 attendance 值的列名
更改为:

"SELECT " + attendance + " FROM viewer WHERE name = '" + name + "' AND year = '" + year + "'"

(为什么要连接参数 nameyear?使用占位符 就像 UPDATE 语句一样)

"UPDATE viewer SET " + attendance + " = ? WHERE name = ? AND year = ? "

int a = r.getInt(attendance);

关于Java resultSet getInt() 无返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296853/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com