我有一个多选复选框的.jsp页面。我可以插入多个复选框值,但在使用更新时,它会添加当前复选框行和额外的复选框值行。如果我再检查一个盒子,它应该再添加一个等等。修改:如何更新重复值的java jdbc中的多个行
这里是我的代码,用于更新工作: CollDAO.java:
//Insert checkbox records
public void addColl(String qId, String[] arrayColId) {
try {
PreparedStatement ps = con.preparedStatement("insert into colTable(qId, colId) values(?,?)");
for(int i = 0; i < arrayColId.length; i++) {
ps.setString(1, qId);
ps.setString(2, arrayColId[i]);
ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
如果我选择2个复选框,这是什么样子。
rowid | qID | CID - 正确
:101 | :121:| :9:
:100:| :121:| :13:
//Update checkbox records
public void updateColl(String qId, String[] arrayColId) {
try {
String sql = "update colTable set colId=?, where qId=?";
PreparedStatement ps = con.preparedStatement(sql);
for(int i = 0; i < colId; i++) {
ps.setString(1, colId[i]);
ps.setString(2, qId);
ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
如果我选择3个复选框这是得到更新。
rowid | qID | CID - 输出错误
:105:| :121:| :2:
:104:| :121:| :9:
:103:| :121:| :13:
:101:| :121:| :9:
:100:| :121:| :13:
这就是它假设的样子。
rowid | qID | CID - 正确的输出
:103 | :121:| :2:
:101:| :121:| :9:
:100:| :121:| :13:
我一直在为此工作一个星期,有人可以帮助我吗?
谢谢
您需要检查arrayColID中的值。 – Sedrick