2)进行查找所有订单------主要是给管理员提供操作的
1)我们要想获取到所有的订单信息,我们不需要获取那么详细的内容,我们在Order对象里面,有一些OrderID和UserID这样的属性,我们就直接借助order_user这张表就可以进行获取到了,但是我们还有一个重要的属性叫做dishes(List<dishs>),我们如果是想要获取再详细一点的信息比如说想要获得菜品的名字的详细信息,就需要根据DishID去dish表里面查,查询到这个订单对应的所有菜品填充到List里面,我们在这里面暂时不关心,反正后面有一个查看指定订单详细信息的接口;
所以说:在这个部分的代码中,此处查询的结果集中是没有dishs字段的;
2)
因为就是说你在查看所有订单信息的时候,假设是管理员,你最终要看,也要点进去某一个具体的用户去查看这个人订了那些菜品,是不是要进行传递OrderID
而普通用户在进行查看自己的订单信息的时候,也是要传递一个订单ID,查看这个订单都有啥菜
public List<Order> GetALlOrders() throws SQLException { //主要是为了给管理员显示所有用户订单信息 //1.与数据库建立连接 Connection connection=ConnectionMYSQL.GetConnection(); //2.拼装SQL语句 String SQL="select * from Order_User"; //3.执行SQL语句 PreparedStatement statement= connection.prepareStatement(SQL); //4.执行SQL语句并包装成结果返回给客户端 List<Order> orderList=new ArrayList<>(); ResultSet resultSet= statement.executeQuery(); while(resultSet.next()){ Order order=new Order(); order.setOrderID(resultSet.getInt("OrderID")); order.setUserID(resultSet.getInt("UserID")); order.setIsDone(resultSet.getInt("IsDown")); order.setOrderTime(resultSet.getTimestamp("OrderTime")); orderList.add(order); } return orderList;
3)查看指定用户的订单(根据UserID来进行查找)-----用户只能查找指定自己的订单
public List<Order> SelectByUserID(int UserID) throws SQLException { List<Order> list=new ArrayList<>(); //1与数据库建立连接 Connection connection=ConnectionMYSQL.getConnection(); //2拼装SQL语句 String SQL="select * from order_user where UserID=?"; PreparedStatement statement= connection.prepareStatement(SQL); statement.setInt(1,UserID); //3执行SQL语句 ResultSet resultSet= statement.executeQuery(); while(resultSet.next()) { Order order=new Order(); order.setOrderID(resultSet.getInt("OrderID")); order.setUserID(UserID); order.setTime(resultSet.getTimestamp("time")); order.setIsDone(resultSet.getInt("IsDone")); list.add(order); } ConnectionMYSQL.close(statement,resultSet,connection); return list; }
4)查看指定订单的详细信息,我们就要把Order的完整信息填写进去
只有一个OrderID,但是一个订单中有很多菜品,就包含了很多菜品ID)-----显示所有的菜品
我们在这个方法里面就要把这个Order对象完整的返回回去,包括Order中有哪些菜品,以及菜品的详情
1)根据OrderID来进行获取到一个Order对象//查找Order_user表 2)根据OrderID来进行获取到所有菜品ID列表//查找Order_dish表 3)我们再根据菜品ID列表来去查询dishs表,来获取到菜品详情//查找dishs表 注意:我们根据菜品ID去查找具体的菜品在前面的代码中已经写过了
5)修改订单状态操作(根据订单ID来进行修改)