2022年5月四号博客内容SSM框架项目管理-------------超市管理系统(第八课对订单管理的多表联查)。
第一部分:
第一部分:查询一张表的所有语句。除了Select * from 表名还有什么方式呢?
SELECT smbms_provider.id, smbms_provider.proCode, smbms_provider.proName, smbms_provider.proDesc, smbms_provider.proContact, smbms_provider.proPhone, smbms_provider.proFax, smbms_provider.proAddress, smbms_provider.createdBy, smbms_provider.creationDate, smbms_provider.modifyDate, smbms_provider.modifyBy FROM smbms_provider
SELECT smbms_bill.id, smbms_bill.billCode, smbms_bill.productName, smbms_bill.productDesc, smbms_bill.productUnit, smbms_bill.productCount, smbms_bill.totalPrice, smbms_bill.isPayment, smbms_bill.createdBy, smbms_bill.creationDate, smbms_bill.modifyBy, smbms_bill.modifyDate, smbms_bill.providerId FROM smbms_bill
第二部分:两张表的连接查询
SELECT smbms_provider.id, smbms_provider.proCode, smbms_provider.proName, smbms_provider.proDesc, smbms_provider.proContact, smbms_provider.proPhone, smbms_provider.proAddress, smbms_provider.proFax, smbms_role.roleCode, smbms_role.roleName, smbms_role.createdBy, smbms_role.creationDate, smbms_role.modifyBy, smbms_role.modifyDate, smbms_role.id FROM smbms_provider INNER JOIN smbms_role ON smbms_provider.id = smbms_role.id, smbms_user
SELECT smbms_role.id, smbms_user.userRole, smbms_user.userCode, smbms_user.userName, smbms_user.userPassword, smbms_user.gender, smbms_user.birthday, smbms_user.phone, smbms_user.createdBy, smbms_user.creationDate, smbms_role.roleName, smbms_role.roleCode FROM smbms_user INNER JOIN smbms_role ON smbms_user.userRole = smbms_role.id
第三部分三张表的查询
SELECT smbms_provider.proCode, smbms_provider.proName, smbms_provider.proDesc, smbms_provider.proAddress, smbms_provider.proFax, smbms_bill.createdBy, smbms_bill.creationDate, smbms_address.modifyDate, smbms_address.modifyBy, smbms_address.contact FROM smbms_address, smbms_bill, smbms_provider
第四部分四张表的查询
SELECT smbms_role.roleCode, smbms_role.roleName, smbms_role.createdBy, smbms_role.modifyBy, smbms_user.id, smbms_user.userCode, smbms_user.userName, smbms_user.userPassword, smbms_user.gender, smbms_user.phone, smbms_user.address, smbms_user.userRole, smbms_provider.proPhone, smbms_provider.proName, smbms_provider.proCode, smbms_provider.proDesc, smbms_provider.proContact, smbms_provider.createdBy, smbms_provider.creationDate, smbms_bill.productName, smbms_bill.productUnit, smbms_bill.productCount, smbms_bill.isPayment, smbms_bill.totalPrice FROM smbms_role, smbms_user, smbms_provider, smbms_bill
在Dao层中编写下面的sql语句将查到的数据发到浏览器页面。
SELECT smbms_bill.id, billCode, productName, productDesc, productCount, productUnit, totalPrice, isPayment, smbms_user.userName, smbms_provider.proName,smbms_bill.creationDate,smbms_bill.modifyDate from smbms_user,smbms_bill,smbms_provider where smbms_user.id=smbms_bill.createdBy and smbms_bill.providerId=smbms_provider.id
定义浏览器的页面
<%@page import="com.github.pagehelper.PageInfo"%> <%@page import="java.util.Map"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>超市订单管理系统--订单列表</title> <style type="text/css"> tr { height: 40px; } *{ background-color: white; } </style> </head> <body> <% //PageInfo pi=(PageInfo)request.getAttribute("bills"); %> <div style="width: 1800px;height: 1000px;margin: auto;"> <div style="width: 100%;height: 160px;"> <div style="width: 100%;height: 20px;"> <div align="left" style="width: 20%;height: 100%;float: left;" > <a href="home.do" style="text-decoration: none;">返回首页</a> </div> <div align="right" style="width: 80%;height: 100%;float: right;"> <a>欢迎,<span style="color: red;">${user.userName}</span></a> <a href="index.do" style="text-decoration: none;">注销</a> </div> </div> <div align="center" style="width: 100%;height: 140px;line-height: 140px;"><h1>超市订单管理系统</h1></div> </div> <% //List<Map<String,Object>> list=pi.getList(); %> <% List<Map<String,Object>> list= (List<Map<String, Object>>) request.getAttribute("bills");%> <div align="center" style="width: 100%;height: 840px;overflow: scroll;"> <!-- 当前普通员工是否有谈下过订单信息,如果没有,显示暂无信息,如果有,展示该员工的所有订单 --> <% if(list==null||list.size()==0){ %> <div style="width: 98%;text-align: center;height: 800px;"> 当前暂无订单信息 </div> <%}else { %> <table border="1" style="width: 98%;text-align: center;border-collapse: collapse;"> <tr> <td>主键Id</td> <td>账单编码</td> <td>商品名称</td> <td>商品描述</td> <td>商品数量</td> <td>商品单位</td> <td>商品总额</td> <td>是否支付</td> <td>员工姓名</td> <td>供应商名称</td> <td>创建时间</td> <td>修改时间</td> <td>操作</td> </tr> <% for(int i=0;i<list.size();i++){ %> <tr> <td ><%=list.get(i).get("id") %></td> <td><%=list.get(i).get("billCode") %></td> <td><%=list.get(i).get("productName") %></td> <td><%=list.get(i).get("productDesc") %></td> <td><%=list.get(i).get("productCount") %></td> <td><%=list.get(i).get("productUnit") %></td> <td><%=list.get(i).get("totalPrice")%>元</td> <% int type=(int)list.get(i).get("isPayment"); %> <% if(type==1){ %> <td style="color:red;">未支付</td> <%}else if(type==2){ %> <td style="color:green;">已支付</td> <%} %> <td><%=list.get(i).get("userName") %></td> <td><%=list.get(i).get("proName")%></td> <td><%=list.get(i).get("creationDate")%></td> <% String time=""; if(list.get(i).get("modifyDate")==null){ time="暂未修改"; }else if("null".equals(list.get(i).get("modifyDate"))){ time="暂未修改"; }else{ time=list.get(i).get("modifyDate").toString(); } %> <td><%=time %></td> <td> <a href="GetBillByIndex.do?index=<%=i%>"><input type="button" value="修改" style="border: 2px;border-radius: 12px;color: black;color: black;background-color: #ece8e8"></a> <a href="DeleteBill.do?id=<%=list.get(i).get("id") %>"><input type="button" value="删除" style="border: 2px;border-radius: 12px;color: black;background-color: #ece8e8"></a> </td> </tr> <%} %> </table> <!-- 分页页码导航栏 --> <%--<br> <div align="center"> <!-- 判断当前页是否存在上一页,不存在则不显示上一页的按钮 --> <%if(pi.getPrePage()>0){ %> <a href="GetBills.do?ym=<%=pi.getPrePage()%>"><input type="button" value="上一页"/></a> <%} %> <% for(int i:pi.getNavigatepageNums()){ %> <a href="GetBills.do?ym=<%=i%>"><%=i %></a> <%} %> <!-- 判断当前页是否存在下一页,不存在则不显示下一页的按钮 --> <% if(pi.getPageNum()<pi.getLastPage()){ %> <a href="GetBills.do?ym=<%=pi.getNextPage()%>"><input type="button" value="下一页"/></a> <%} %> </div>--%> <%} %> </div> </div> </body> </html>
@RequestMapping("/GetBills.do") GetBills.do这个哪里来的。
mav.setViewName("billList2"); 这个是什么意思。