JSF/Java ve ilişkisel DB sorgularıyla yeni yapıyorum.Birden çok tablodan veri görüntüleme
Verileri iki tablodan bir veri tablosunda görüntülemeye çalışıyorum.
İki tablo tblUser ve tblCity var.
Bu tablolar için iki modeli kullanıyorum Kullanıcılar ve Şehir. Ayrıca bir UserDAO ve bir UserController var.
Kullanıcı verilerini tblUser'den nasıl seçeceğinizi ve şehir verilerini tblCity'den nasıl seçeceğimi ve bunları görünümümde göstermeyi öğrenmek istiyorum. MVC stili ile.
Modeli:
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
...
}
Benim Kontrolör
@ManagedBean
@SessionScoped
public List<User> showUser(){
List<User> users = new ArrayList<>();
users= userDAO.showUserList();
return users;
}
Benim 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;
}
}
Benim Görünüm
<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>