I made a method in a data access class that needs to get data from multiple tables. I want to show a table on a webpage with this data.

I tried to use inner joins the get the different data and filled each class up underneath it. I think the problem is located in the sql-statement since the other code 'matches' previously used code that did work. The webpage and servlet should be fine as well.

          ArrayList<Vlucht> vluchtGegevens = new ArrayList<>();

         try (
             Connection connection = DriverManager.getConnection(url, login, password);
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery("SELECT * FROM vlucht "
                     + " inner join vliegtuig on vlucht.vliegtuig_id = vliegtuig.id "
                     + " inner join vliegtuigtype on vliegtuig.vliegtuigtype_id = vliegtuigtype.id "
                     + " inner join luchthaven as VL on vlucht.vertrekluchthaven_id = VL.id "
                     + " inner join luchthaven as AL on vlucht.aankomstluchthaven_id = AL.id");) 
            {
            while (resultSet.next()) {
                 Vlucht vlucht = new Vlucht();
                 vlucht.setId(resultSet.getInt(1));
                 vlucht.setCode(resultSet.getString("code"));
                 vlucht.setVertrekTijd(resultSet.getDate("vertrekTijd"));
                 vlucht.setAankomstTijd(resultSet.getDate("aankomstTijd"));
                 vlucht.setVliegtuig_id(resultSet.getInt("vliegtuig_id"));
                 vlucht.setVertrekluchthaven_id(resultSet.getInt("vertrekluchthaven_id"));
                 vlucht.setAankomstluchthaven_id(resultSet.getInt("aankomstluchthaven_id"));

                 Vliegtuig vliegtuig = new Vliegtuig();
                 vliegtuig.setId(resultSet.getInt("id"));
                 vliegtuig.setVliegtuigType_id(resultSet.getInt("vliegtuigtype_id"));
                 vliegtuig.setLuchtvaartMaatschappij_id(resultSet.getInt("luchtvaartMaatschappij_id"));
                 vlucht.setVliegtuig(vliegtuig);

                 VliegtuigType vliegtuigType = new VliegtuigType();
                 vliegtuigType.setId(resultSet.getInt(5));
                 vliegtuigType.setTypenaam(resultSet.getString("typenaam"));

                 vlucht.setVliegtuigType(vliegtuigType);

                 Luchthaven vertrekLuchthaven = new Luchthaven();
                 vertrekLuchthaven.setId(resultSet.getInt(6));
                 vertrekLuchthaven.setLuchthavennaam(resultSet.getString("luchthavennaam"));
                 vertrekLuchthaven.setStad(resultSet.getString("stad"));
                 vertrekLuchthaven.setLand_id(resultSet.getInt("land_id"));

                 vlucht.setVertrekLuchthaven(vertrekLuchthaven);

                 Luchthaven aankomstLuchthaven = new Luchthaven();
                 aankomstLuchthaven.setId(resultSet.getInt(7));
                 aankomstLuchthaven.setLuchthavennaam(resultSet.getString("luchthavennaam"));
                 aankomstLuchthaven.setStad(resultSet.getString("stad"));
                 aankomstLuchthaven.setLand_id(resultSet.getInt("land_id"));

                 vlucht.setAankomstLuchthaven(aankomstLuchthaven);
                 vluchtGegevens.add(vlucht);


                            }
        } catch (Exception e) {
            e.printStackTrace();
        }
         return vluchtGegevens  ;
    }
    ```

1 Answers

0
Community On

The word 'as' had to be removed from the sql-statement. This caused a problem because I was using Netbeans.