**
Dao层的代码实现
**
Service层实现
Servlet层实现
Bean
实现效果
以上是图片展示,一下是部分代码展示
DAO部分
//通过查出2个表的数据where u.id=o.id的数据MapListHandler,然后再通过遍历MapList得到一个个的map,再通过转换,
//将map的数据转换成Order对象,再把这一个个对象全部放在List里面,返回给
public List<Order> FindOrdersByUserId(String userid) throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
//这个查出来的数据就包含了order和user的数据在一起
String sql2 ="select o.*,u.* from orders o,user u where o.user_id=u.id";
//List<User> user = qr.query(sql2, new BeanListHandler<User>(User.class));
//MapListHandler()使让每一条订单在一个map里面,再将这些map放进一个list里面
List<Map<String,Object>> maplist = qr.query(sql2, new MapListHandler());
//写一个方法,将每一个Map里面的数据转化成Order类的,再将每个Order对象放在一个List里面
List<Order> orderList = toOrderList(maplist);
return orderList;
}
private List<Order> toOrderList(List<Map<String, Object>> maplist) {
List<Order> orderList = new ArrayList<>();
//遍历每个list
for (Map<String, Object> map : maplist) {
//将每个map单独处理,弄成Order
Order order= toOrder(map);
//再将每个Order放进OrderList里面
orderList.add(order);
}
return orderList ;
}
//将一个map转换为一个Order对象
private Order toOrder(Map<String, Object> map){
// TODO Auto-generated method stub
Order order = new Order();
User user = new User();
try {
//通过map映射order对象
BeanUtils.populate(order, map);
//通过map映射user对象
BeanUtils.populate(user, map);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
order.setUser(user);//将设置order对象的user的数据
return order;
}
Servler部分
package com.hui.bookstore.web.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.hui.bookstore.model.Order;
import com.hui.bookstore.model.Product;
import com.hui.bookstore.model.pageResult;
import com.hui.bookstore.service.OrderService;
import com.hui.bookstore.service.ProductService;
/**后台功能
*
* 通过分类查找商品,
*
* Servlet implementation class ProductInfoServlet
*/
@WebServlet("/OrderShowServlet")
public class AdminOrderShowServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取参数
String id = request.getParameter("id");
//调用service
OrderService os = new OrderService();
List<Order> order = os.FindOrdersByUserId(id);
//List<User> user = os.FindOrdersByUserId(id)
System.out.println(order);
//将数据放进request
request.setAttribute("order",order);
//转发,跳转页面
//4.跳转页面到指定商品页面product_info.jsp
request.getRequestDispatcher("/admin/orders/list.jsp").forward(request, response);
}
}
jsp页面的订单显示部分
<table cellspacing="0" cellpadding="1" rules="all"
bordercolor="gray" border="1" id="DataGrid1"
style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 100%; WORD-BREAK: break-all; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #f5fafe; WORD-WRAP: break-word">
<tr
style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3">
<td align="center" width="20%">订单编号</td>
<td align="center" width="10%">收件人</td>
<td align="center" width="15%">地址</td>
<td align="center" width="10%">联系电话</td>
<td width="11%" align="center">总价</td>
<td width="8%" align="center">所属用户</td>
<td width="10%" align="center">订单状态</td>
<td width="7%" align="center">查看</td>
<td width="7%" align="center">删除</td>
</tr>
<c:forEach items="${order}" var="od">
<tr onmouseover="this.style.backgroundColor = 'white'"
onmouseout="this.style.backgroundColor = '#F5FAFE';">
<td style="CURSOR: hand; HEIGHT: 22px" align="center"
width="20%">${od.id}</td>
<td style="CURSOR: hand; HEIGHT: 22px" align="center"
width="10%">${od.receiverName}</td>
<td style="CURSOR: hand; HEIGHT: 22px" align="center"
width="15%">${od.receiverAddress}</td>
<td style="CURSOR: hand; HEIGHT: 22px" align="center"
width="10%">${od.receiverPhone}</td>
<td style="CURSOR: hand; HEIGHT: 22px" align="center">
${od.money}</td>
<td width="8%" align="center">${od.user.username}</td>
<td width="10%" align="center">未支付</td>
<td align="center" style="HEIGHT: 22px"><a
href="#">
<img
src="${pageContext.request.contextPath}/admin/images/button_view.gif"
border="0" style="CURSOR: hand"> </a></td>
<td align="center" style="HEIGHT: 22px">
<a
href="#">
<img
src="${pageContext.request.contextPath}/admin/images/i_del.gif"
width="16" height="16" border="0" style="CURSOR: hand">
</a>
</td>
</tr>
</c:forEach>
</table>
最后,另附一张图
这几个要掌握
再最后,引一个链接https://blog.youkuaiyun.com/weixin_42247552/article/details/89784610
也是看懂上面这个博主写的才会写
今天的自己终于有输出了
终于搞定了这个,烦了好久
加油