我是新成员。我真的需要你的帮助。 :)
问题:我想将选定的组合框项目插入到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);
}
答案 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注入攻击)并且性能更好(因为您的数据库可以重用查询计划以供将来查询)