我想保存来自java组合框所选项目的密钥我创建了这个函数,所以我可以返回表格#34;国籍"并将其作为外键插入到其他表中但它不起作用它总是返回0:
public int getNat() throws Exception{
String query = "SELECT code_nat FROM nationality WHERE nationality=?";
try ( PreparedStatement stat = cnx.prepareStatement(query) ) {
stat.setString(1, (String)cmbNat.getSelectedItem());
rslt = stat.executeQuery();
return rslt.getInt(1);
}catch(SQLException ex){
ex.printStackTrace();
return 0;
}
}
答案 0 :(得分:1)
您无法选择表格的所有字段:
String query = "SELECT * FROM nationality WHERE nationality=?";
// ↑ here
改为使用字段名称:
String query = "SELECT nationality_id FROM nationality WHERE nationality=?";
同样到retrieve data check here,但必须这样做
return rs.getInt("nationality_id");
答案 1 :(得分:0)
插入功能
public void insertInfo() throws Exception{
try{
int codeNat = getNat();
String query = "INSERT INTO info (id,name,code_nat) VALUES (?,?,?)";
stat = cnx.prepareStatement(query);
stat.setString(1, txtId.getText());
stat.setString(2, txtName.getText());
stat.setInt(3, codeNat);
stat.execute();
Update_table();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,ex);
}
finally{
try{
stat.close();
cnx.close();
}catch(Exception e){
}
}
}