我正在尝试将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'";
您丢失了一些所需的空格,但是再次建议使用预处理语句,这样可以轻松避免此类格式问题。