我遇到了一些麻煩,我使用SQL編碼來管理通過Java的數據庫(通過發送數據庫執行查詢)。通過'連接表'(包含其他表的ID)從數據庫檢索信息?
我們的項目的目標是建立一個航班預訂系統,以防萬一我希望通過他/她的電子郵件搜索客戶來獲取與某個客戶相關的一些出發物品。
在我們的數據庫中,我們的Seat表具有用於出發(其僅包含數據庫中的時間和日期)和客戶的外鍵標識。我的想法是使用這些ID來連接我的搜索,最終將客戶連接到相關的出發信息。
這裏是我的代碼截至目前:
@Override
public ArrayList<Departure> getCustomerDepartures(String email)
{
try
{
ArrayList<Departure> departures = new ArrayList<>();
String query = "SELECT DISTINCT fr.DepartureLocation, fr.Destination,
d.Date, d.Time FROM Departure d, Customer c, Seat s, FlightRoute fr WHERE
c.Id = s.CustomerId AND d.Id = s.DepartureId AND c.Email = ?;";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, email);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
String departureLocation = rs.getString("DepartureLocation");
String destination = rs.getString("Destination");
int date = rs.getInt("Date");
String time = rs.getString("Time");
departures.add(new Departure(departureLocation, destination, date, time));
}
return departures;
} catch (SQLException ex)
{
System.out.println("Could not collect departure data, associated with customer.");
}
return null;
}
我從這個收穫是什麼,當我嘗試在GUI中顯示在JList
爲出發的選項(在作出離開的對象的ArrayList
成一個離隊對象數組和一串字符串(用於顯示出發信息)),它總是給我9個不同的選項JList
(因此,返回的ArrayList
包含9個離境對象),具有不同的值。
我認爲這個問題更適合http://codereview.stackexchange.com/ –