Ich bin neu mit JSF/Java und relationalen DB-Abfragen.Anzeige von Daten aus mehreren Tabellen
Ich versuche, Daten aus zwei Tabellen in einer Datentabelle anzuzeigen.
Ich habe zwei Tabellen tblUser und tblCity.
Für diese Tabellen habe ich zwei Modelle Benutzer und Stadt. Hat auch einen UserDAO und einen UserController.
Ich würde gerne wissen, wie Benutzerdaten aus tblUser wählen und Stadt Daten aus tblCity und zeigen sie auf meiner Ansicht. Mit MVC-Stil.
Modell:
public class User{
private Integer user_id;
private String user_name;
private Integer City_id;
//getter and setter
...
}
public class City{
private Integer city_id;
private String city_name;
//getter and setter
...
}
mein Controller
@ManagedBean
@SessionScoped
public List<User> showUser(){
List<User> users = new ArrayList<>();
users= userDAO.showUserList();
return users;
}
Mein DAO
@ManagedBean
@RequestScoped
public class userDAO{
/**
* Creates a new instance of patientDAO
*/
private final connectToDB con = new connectToDB();
public userDAO() {
}
public List<User> showUserList() {
Connection dbConnection = null;
dbConnection = con.getDBConnection();
PreparedStatement pstmt = dbConnection
.prepareStatement("select a.user_id, a.user_name, b.city_name"
+ " from users a, cities b WHERE a.city_id = b.city_id");
ResultSet rs = pstmt.executeQuery();
List<User> users = new ArrayList<>();
List<City> cities = new ArrayList<>();
while (rs.next()) {
User user = new User();
City city = new City();
user.setUser_Id(rs.getInt("user_id"));
user.setUser_Id(rs.getString("user_name"));
city.setCity_Name(rs.getInt("city_name"));
users.add(user);
cities.add(city);
}
// close resources
rs.close();
pstmt.close();
dbConnection.close();
return users;
}
}
My View
<p:dataTable id="userDT" var="user" value="#{userController.showUserList()}">
<p:column width="200" headerText="User Name">
<h:outputText value="#{user.user_name}" />
</p:column>
<p:column width="200" headerText="City Name">
<h:outputText value="#{...}" />
</p:column>
</p:dataTable>