我有一个字符串将数据发送到数据库。我按价值收到错误。
我相信这是因为我的数据库中的最后一行是一个bool值,默认为1,如true。
我希望根据我的数据库中名为relationship的条目9将此值设置为false。例如
如果关系是商业 bool值应设置为0 其他 bool值1
我对如何执行此操作感到困惑并正确输入此字符串。这是我目前的方法。
private void Cmd_saveActionPerformed(java.awt.event.ActionEvent evt) {
try {
String sql ="Insert Into contact (id, Business_Name, First_Name, Last_Name, Phone, Email, Address_Line_1, Address_Line_2, Website, Relationship, Answer) value (?,?,?,?,?,?,?,?,?,?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1,tb0.getText());
pst.setString(2,tb1.getText());
pst.setString(3,tb2.getText());
pst.setString(4,tb3.getText());
pst.setString(5,tb4.getText());
pst.setString(6,tb5.getText());
pst.setString(7,tb6.getText());
pst.setString(8,tb7.getText());
pst.setString(9,tb8.getText());
pst.setString(10,tb9.getSelectedItem().toString());
pst.setString(11.toString();
rs = pst.executeQuery();
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:1)
使用PreparedStatement.setBoolean(int parameterIndex, boolean x)
方法。例如:
pst.setBoolean(11, tb9.getSelectedItem().toString().equals("Business"));
请注意,不是正在执行的查询(它是INSERT
),所以这是不正确的:
rs = pst.executeQuery();
代替:
pst.executeUpdate(); // In this case you are expecting a return value of 1,
// which you should check to ensure the insert happened.
在VALUES
语句中它是value
,而不是INSERT
(案例不重要,我在编写SQL时我更喜欢大写的关键字。)