这是我的数据库的一个例子,客户(idCustomer、姓名、电子邮件…(产品(idProduct,名称,价格…(订单(idOrder,idProduct,idCustomer,…(
我如何在订单类中申报idProduct
public class Order{
private int idCustomer ;
private int idProduct ;
private int idOrder ;
//Getters and setters
}
或
public class Order{
private Customer customer ;
private Product product ;
private int idOrder ;
//Getters and Setters }
当我更改了第二个片段中显示的属性时。我在使用Setters和ResultSet时遇到了一个问题,所以我在循环中创建了一个Customer和Product变量。
public static List<Order> getAllOrder() {
List<Order> list=new ArrayList<Order>() ;
Customer c = new Customer() ;
Product p = new Product()
try {
Connection con =DB.getCon() ;
java.sql.PreparedStatement ps=con.prepareStatement("select * from Order") ;
ResultSet rs=ps.executeQuery() ;
while (rs.next()) {
Order o =new Order() ;
o.setIdOrder(rs.getInt(1)) ;
c.setIdCustomer(rs.getInt(2)) ;
o.setCustomer(c) ;
p.setIdProduct(rs.getInt(3)) ;
c.setProduct(p) ;
list.add(o) ;}
ps.close() ;
con.close();
}catch (Exception e ) {System.out.println(e) ; }
return list ;}
我这样做的原因是,我希望我的项目忠于OOP概念,它有助于JOIN查询,这样我就可以检索订单类中没有声明的信息。谢谢大家
简短的答案是肯定的,最好将关系声明为对象,而不仅仅包括它们的Id。如果您发现自己经常使用Id而不使用对象的其余部分,那么添加额外的getter可能是个好主意,这些getter只从对象中获取Id。