我正在尝试将JSpinners值添加到数据库的列中,
当我将变量query2放入db.update()但不进行查询时,为什么它可以工作?我需要更改什么?

try {
    int points = (int) antalPoäng.getValue();

    String query = "UPDATE ELEVHEM SET HUSPOANG = HUSPOANG" + points + "WHERE ELEVHEMSNAMN ='Gryffindor'";
    String query2 = "UPDATE ELEVHEM SET HUSPOANG = HUSPOANG +1 WHERE ELEVHEMSNAMN ='Gryffindor'";

    if (namnElevhem.getSelectedItem().equals("Gryffindor")) {
        db.update(query);
        JOptionPane.showMessageDialog(null,"The points has been added")
    }
}
catch(InfException e) {

}

最佳答案

我怀疑您在第一个查询中想将HUSPOANG列增加一定量。我们可以尝试只更正您的串联查询字符串,但是在这里使用准备好的语句会更好:

String sql = "UPDATE ELEVHEM SET HUSPOANG = HUSPOANG + ? WHERE ELEVHEMSNAMN = 'Gryffindor'";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, points);
ps.executeUpdate();


如果要继续使用当前方法,则需要修复查询字符串:

String query = "UPDATE ELEVHEM SET HUSPOANG = HUSPOANG + " + points +
    " WHERE ELEVHEMSNAMN = 'Gryffindor'";


您丢失了一些所需的空格,但是再次建议使用预处理语句,这样可以轻松避免此类格式问题。

07-26 04:13