如何将使用名称的id值从一个表传递到另一张表并将信息存储到数据库

时间:2018-08-02 20:55:59

标签: java mysql javafx fxml

Sql query how to pass the id from department table using the department name to the user table using the department id here in department table dept_id is primary key and dept_id in user table is foreign key

如何使用部门表中的department_name选择dept_id并将值存储在用户表中

            try{
                Connection con = DBconnect.getConnection();

                //selecting the dpartment
                String sql ="select DEPARTMENT_CODE,DEPARTMENT_NAME from department_info";
                PreparedStatement ps = con.prepareStatement(sql);
                String s11=comboboxdeptid.getItems().toString();
                ResultSet rs=ps.executeQuery();

                if(rs.next()==true)
                {
                    if(rs.getString("DEPARTMENT_NAME").equals(comboboxdeptid.getSelectionModel().toString()))
                        rs.getString("DEPARTMENT_CODE");
                }



                //second stmt
                String sql1 = "insert into user_info(USER_NAME, FIRST_NAME, LAST_NAME, DESIGNATION, ADDRESS,PASSWORD_TXT,DEPARTMENT_CODE,CREATED_BY) values(?,?,?,?,?,?,?,?)";
                PreparedStatement ps1 = con.prepareStatement(sql1);
                    String s12 = nameid.getText();
                    String s13 = Firstnameid.getText();
                    String s14 = Lnameid.getText();
                    String s15 = desigid.getText();
                    String s16 = comboboxdeptid.getItems().toString();
                    String s17 = addrsid.getText();
                    String s18 = passwordid.getText();
                    ps.setString(1, s12);
                    ps.setString(2, s13);
                    ps.setString(3, s14);
                    ps.setString(4, s15);
                    ps.setString(5, s17);
                    ps.setString(6, s18);
                    ps.setString(7, s11);
                    ps.setString(8, "abc");
                    ps.execute();
                    ResultSet rs1=ps1.executeQuery();

                    //third stmt
                    String sql2 = "update security_qa_info set SECURITY_QUESTION=?, SECURITY_ANSWER=? where USER_ID=?";
                    PreparedStatement ps2 = con.prepareStatement(sql2);
                    String s19 = securityquestionid.getSelectionModel().getSelectedItem().toString();
                    String s20 = answerid.getText();
                    while(rs2.next()==true)
                    {
                        if(rs2.getString("USER_NAME").equals(nameid.getText()))
                        {
                            rs2.getString("USER_ID");
                            ps2.setString(1, s16);
                        }
                    }
                    ps2.setString(2, s19);
                    ps2.setString(3, s20);
                    ps2.executeUpdate();


                    showMessageDialog(null, "Registration Successful");
            }catch(Exception e){
        //         showMessageDialog(null, e);
          e.printStackTrace();
            }
            Parent fxml = FXMLLoader.load(getClass().getResource("/com/abc/fxml/LoginPage.fxml"));
            pane2.getChildren().setAll(fxml);

        } else {
        showMessageDialog(null, "Passwords don't match!");
    }

}

1 个答案:

答案 0 :(得分:1)

ps =为SELECT查询准备的语句:

      String sql ="select DEPARTMENT_CODE,DEPARTMENT_NAME from department_info";
      PreparedStatement ps = con.prepareStatement(sql);

ps1 = INSERT语句的准备好的语句:

      String sql1 = "insert into user_info(USER_NAME, FIRST_NAME, LAST_NAME, DESIGNATION, ADDRESS,PASSWORD_TXT,DEPARTMENT_CODE,CREATED_BY) values(?,?,?,?,?,?,?,?)";
      PreparedStatement ps1 = con.prepareStatement(sql1);

使用错误的准备语句:

      ps.setString(1, s12);

建议-如果您将第一个准备好的语句称为“ selectDepartmentDetails”,而将第二个语句称为“ insertUserInfo”,则遇到此可能性的可能性较小。