public Order find(String id){
try {
QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
//查找订单表,找出订单的基本信息
String sql = "select * from orders where id=?";
Order order = (Order) runner.query(sql, id, new BeanHandler(Order.class));
//查找订单项表,找出订单所有的订单项
sql = "select * from orderitem where order_id=?";
List<OrderItem> list = (List) runner.query(sql, id, new BeanListHandler(OrderItem.class));
for(OrderItem item : list){
//查订单项代表的书的信息
sql = "select b.* from orderitem o,book b where o.id=? and o.book_id=b.id";
Book book = (Book) runner.query(sql, item.getId(), new BeanHandler(Book.class));
item.setBook(book);
}
order.getOrderitem().addAll(list);
//查订单所属的用户
sql = "select u.* from orders o,user u where o.id=? and o.user_id=u.id";
User user = (User) runner.query(sql, id, new BeanHandler(User.class));
order.setUser(user);
return order;
} catch (Exception e) {
throw new RuntimeException(e);
}
}