如何在java中向db添加bool值

时间:2014-03-18 16:37:37

标签: java sql string jdbc boolean

我有一个字符串将数据发送到数据库。我按价值收到错误。

我相信这是因为我的数据库中的最后一行是一个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);  
        } 
    }                                        

1 个答案:

答案 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时我更喜欢大写的关键字。)