使用Java和MySQL数据库的Family Tree

时间:2018-02-26 14:42:52

标签: java mysql data-structures

我使用MySQL数据库在Java中创建了一个Family树程序。该程序包括用户将输入名称,父亲姓名,城市,州等详细信息。数据存储在数据库中。然后,如果我们输入任何名称,它将在数据库中搜索并返回完整的族谱。

我为它创建了一个逻辑,如果用户输入任何名称,它将搜索名称并打印数据,然后它将使用父名称分配名称并再次在数据库中搜索,直到找不到记录。它工作正常,但是当有两个成员的共同名称时会出现问题。如何解决这个问题,任何方法都将受到赞赏。

我附上了该程序的代码。

private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {                                          
    txtDisplay.setText("");
    str="";
    boolean b = false;
    name = txtName.getText();
    b = hasParent(name);
    if(b==true)
    getData();
    else
        JOptionPane.showMessageDialog(this, "No Records");

    b = hasParent(name);

    while(hasParent(name))
    {
        getData();

    }
    txtDisplay.setText(str); 

}                

public boolean hasParent(String name)
{
    boolean b = false;
    b = DBManager.searchParent(name);
    return b;
}

public void getData(){
    Family f = new Family();
    f = DBManager.getFamily(name);
    str = str+"Name: "+f.getName()+"\t|| "+"Father's Name: "+f.getFatherName()+"\n\n";

    name = f.getFatherName();
}

数据库访问方法:

      public static boolean searchParent(String name){
         boolean flag = false;
         int count=0;
         try(Connection con = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);){
             PreparedStatement st = con.prepareStatement("select name from Family where Name=?");
             System.out.println(name);
             st.setString(1,name);
             ResultSet rs = st.executeQuery();
             if(rs.next()){
                 flag =true;
             }

             rs.close();
             st.close();
         }catch(Exception e){

         }
         return flag;
     }

0 个答案:

没有答案