如何将组合框选中的项目pk插入mysql?

时间:2014-05-13 10:32:50

标签: java mysql jdbc combobox

我是新成员。我真的需要你的帮助。 :)

问题:我想将选定的组合框项目插入到mysql中,但我不想要该项目,但我想要插入所选项目的pk。我需要帮助来检测我的错误并告诉我问题是什么,我应该怎么做。仅供参考,我正在使用netbeans。 这是我的代码。

//成员类型组合框

private void FillComboBoxMemberRegistration(){
    try{
        String sql = "select * from jeniskeahlian";
        pst =  conn.prepareStatement(sql);
        rs = pst.executeQuery();

        while(rs.next()){
            String memberType = rs.getString("Type");
            MemberTypeComboBox.addItem(memberType);

        }


    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

}

//会员类型组合框[插入]

        String memberTypeList = MemberTypeComboBox.getSelectedItem().toString();
        String sql1  ="Select MemberTypeID from jeniskeahlian where Type = '" + memberTypeList ;
        pst = conn.prepareStatement(sql1);
        rs = pst.executeQuery();

        while(rs.next()){

            String memberType = rs.getString("MemberTypeID");
            pst.setString(10, memberType);


        }

1 个答案:

答案 0 :(得分:0)

看起来你已经忘记了第二个撇号来关闭你的字符串

String sql1  ="Select MemberTypeID from jeniskeahlian where Type = '" + memberTypeList ;

但是,我建议你,因为你已经在使用PreparedStatement,所以这样做:

String sql1  ="Select MemberTypeID from jeniskeahlian where Type = ?" ;
pst = conn.prepareStatement(sql1);
pst.setString(1, memberTypeList);
rs = pst.executeQuery();

这种方式更安全(您无法接收SQL注入攻击)并且性能更好(因为您的数据库可以重用查询计划以供将来查询)