Java 如何使用从文本字段获得的特定名称查询多个表?

Java 如何使用从文本字段获得的特定名称查询多个表?,java,mysql,Java,Mysql,我试图查询一个包含名称的文本字段,文本框是RegName,我想从一个MySQL数据库中获取名称并选择信息,该数据库有5个表,每个表都有一个与单个狗相关的字段DogId。我想用文本字段中的名称获取狗的信息。然后我用从查询中获得的信息填写文本字段。我的问题似乎是select语句的最后两行(来自doginfo) 其中RegName='“+dn+”); 同样,RegName是带有我要查找的名称的文本字段。我已经尝试了我能想到的一切,并且花了几天时间寻找答案。任何帮助都将不胜感激 这是我的密码

我试图查询一个包含名称的文本字段,文本框是RegName,我想从一个MySQL数据库中获取名称并选择信息,该数据库有5个表,每个表都有一个与单个狗相关的字段DogId。我想用文本字段中的名称获取狗的信息。然后我用从查询中获得的信息填写文本字段。我的问题似乎是select语句的最后两行(来自doginfo) 其中RegName='“+dn+”); 同样,RegName是带有我要查找的名称的文本字段。我已经尝试了我能想到的一切,并且花了几天时间寻找答案。任何帮助都将不胜感激

这是我的密码

       // This is where we get the information on a dog based on its Name.
     @FXML
     private void querybyNameActionPerformed(ActionEvent event) {                                                

    // Query the db for record with dog name equal to the name in regName.
    String user = "root";
      String password = "";
      String dn = null;  


      dn = RegName.getText().trim();  // dn = dog name.

     try {

        Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/kennelmanagment1", user, password);

        // Create statement.
         Statement myStmt = myConn.createStatement();


        // Execute query.

        ResultSet myRs = myStmt.executeQuery("SELECT d.DogId, d.RegNum, d.RegName, d.WhelpDate, d.DNA, d.Notes, a.Breed, a.Sex, a.color, s.SireRegName, b.DamRegName, o.LastName, c.CoOwnerNames, o.Address1, o.Address2, o.City, o.State, o.Zip, o.Htel, o.Cell \n"
                + "FROM doginfo d LEFT JOIN dogat a \n"
                + "ON d.DogId = a.DogId \n"
                + "LEFT JOIN sires s \n"
                + "ON d.DogId = s.DogId \n"
                + "LEFT JOIN dams b \n"
                + "ON d.DogId = b.DogId\n"
                + "LEFT JOIN owners o\n"
                + "ON d.DogId = o.DogId\n"
                + "LEFT JOIN coowners c\n"
                + "ON d.DogId = c.DogId"
                +" FROM doginfo"
                + "Where RegName = ' " +dn+ " '");


       //System.out.println (dn);
       // System.out.println ("SELECT * FROM doginfo WHERE Regname = '" + dn + " '  ");

        // Process the result.
        while (myRs.next ()) {
             DogId.setText (myRs.getString("DogId"));
             RegNum.setText (myRs.getString ("RegNum"));
             RegName.setText(myRs.getString ("RegName"));
             WhelpDate.setText (myRs.getString("WhelpDate"));
             Breed.setText (myRs.getString ("breed"));
             Sex.setText (myRs.getString ("sex"));
             Color.setText (myRs.getString ("color"));
             SireRegName.setText (myRs.getString ("SireRegName"));
             DamRegName.setText (myRs.getString ("DamRegNName"));
             Owner.setText (myRs.getString ("Owner"));
             CoOwners.setText (myRs.getString("CoOwners"));
             Address1.setText (myRs.getString ("Address1"));
             Address2.setText (myRs.getString ("Addess2"));
             City.setText (myRs.getString("City"));
             State.setText (myRs.getString ("State"));
             Zip.setText (myRs.getString ("Zip"));
             DNA.setText (myRs.getString ("DNA"));
             HTel.setText (myRs.getString ("HTel"));
             Cell.setText (myRs.getString ("Cell"));
             Notes.setText (myRs.getString ("Notes"));
        }

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



}         

我认为你不需要第二行,因为你已经在第一行提到了表格。 尝试删除查询最后一行的“fromDogInfo”。
试着把它去掉,它就会起作用。

举个例子会有帮助。我不知道如何让它更清楚。我想从一个文本字段中获取名称,并在数据库中搜索关于该名称的信息。一旦我获取了要将其放入文本字段的数据,我就无法获得select语句。这是我的错误消息(您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第11行“RegName=”Desiree“”附近使用的正确语法)我尝试删除您建议的行,但仍然出现相同的错误。这更适合作为注释。OP并没有给出他们试图做什么的清晰画面。迈克,很抱歉看到上面的评论。由于这是一个相当大的程序,我不确定如何给出一个例子。如上所述,我在使用select语句时遇到问题。如果多个表中存在列,则应在查询“something.Regname”名称中的列名之前指定别名。对不起,迈克!我是这个社区的新手。