zoukankan      html  css  js  c++  java
  • Android网络编程之一个Android下菜单系统模块的实现(服务器端—结算功能(上部))

    完成了下单功能后,我们来编写结算功能模块,结算的主要流程为:

    客户端传送主订单号 ---> 服务器端接收请求 ---> 根据主订单号取出所有与该订单有关的信息 ---> 将其编写为html 传回客户端的WebView直接加载显示

    这一部分的服务器端实现分为上下两个部分,第一部分我们先让服务器返回主订单信息显示。

    我们依然使用DAO设计来实现,首先设计出一个实体类来封装根据对应订单号查出的主订单信息:

    com.moka.entity中新建QueryOrder.java:

    /**
     *    用于封装查一个对应订单的信息的实体类
     */
    public class QueryOrder {
        // 服务员名字
        private String name;
        // 下单时间
        private String orderTime;
        // 人数
        private int personNum;
        // 桌号
        private int tableId;
        
      getters & setters ..  
        
    }
    View Code

    然后,设计操作这些数据的DAO与其实现类:

    public interface PayDao {
        // 取得主订单信息
        public QueryOrder getOrderById(int id);
    }
    public class PayDaoImpl implements PayDao {
    
        @Override
        public QueryOrder getOrderById(int id) {
            
            // jdbc连接数据库准备工作
            DBUtil util = new DBUtil(); 
            Connection conn = util.openConnection();
            
            // 插入数据库操作用,此处用到表连接,表重命名的知识
            String queryOrderSql = "select ut.name, ot.orderTime, ot.personNum, ot.tableId from ordertbl ot " +
                                  "join usertbl ut on ot.userId = ut.id where ot.id = ?" ;
            PreparedStatement ps = null;
            ResultSet resultSet = null;
            // 实例化封装数据的QueryOrder类
            QueryOrder queryOrder = new QueryOrder();
            try {
                ps = conn.prepareStatement(queryOrderSql);
                ps.setInt(1, id);
                resultSet = ps.executeQuery();
                if (resultSet.next()) {
                    // 使用所获数据填充QueryOrder
                    queryOrder.setName(resultSet.getString(1));
                    queryOrder.setOrderTime(resultSet.getString(2));
                    queryOrder.setPersonNum(resultSet.getInt(3));
                    queryOrder.setTableId(resultSet.getInt(4));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (resultSet != null) {
                        resultSet.close();
                        resultSet = null;
                    }
                    if (ps != null) {
                        ps.close();
                        ps = null;
                    }
                    if (conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return queryOrder;
        }
    
    }
    View Code

    再写QueryOrderServlet:

    public class QueryOrderServlet extends HttpServlet {
    
        private static final long serialVersionUID = -8119485282580908498L;
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            resp.setContentType("text/html");
            PrintStream ps = new PrintStream(resp.getOutputStream(), true, "utf-8");
            
            // 根据传来的orderId得到对应封装数据
            String id = req.getParameter("id");
            int orderId = Integer.parseInt(id);
            PayDao payDao = new PayDaoImpl();
            QueryOrder order = payDao.getOrderById(orderId);
            
            // 从封装数据包中取出数据
            String name = order.getName();
            String orderTime = order.getOrderTime();
            int personNum = order.getPersonNum();
            int tableId = order.getTableId();
            
            // 将数据写进Html页面传回客户端
            ps.println("<HTML>");
            ps.println("  <HEAD></HEAD>");
            ps.println("  <BODY>");
            ps.print("<table>");
                ps.print("<tr>");
                
                    ps.print("<th>");
                        ps.print("Order ID");
                    ps.print("</th>");
                    
                    ps.print("<th>");
                        ps.print("Waiter Name");
                    ps.print("</th>");
                    
                    ps.print("<th>");
                        ps.print("Order Time");
                    ps.print("</th>");
                    
                    ps.print("<th>");
                        ps.print("Person Num");
                    ps.print("</th>");
                    
                    ps.print("<th>");
                        ps.print("Table ID");
                    ps.print("</th>");
                    
                ps.print("</tr>");
                
                ps.print("<tr>");
                    
                    ps.print("<td>");
                        ps.print(id);
                    ps.print("</td>");
                    
                    ps.print("<td>");
                        ps.print(name);
                    ps.print("</td>");
                    
                    ps.print("<td>");
                        ps.print(orderTime);
                    ps.print("</td>");
                    
                    ps.print("<td>");
                        ps.print(personNum);
                    ps.print("</td>");
                    
                    ps.print("<td>");
                        ps.print(tableId);
                    ps.print("</td>");
                    
                ps.print("</tr>");
    
            ps.print("</table>");
            ps.println("  </BODY>");
            ps.println("</HTML>");
            ps.flush();
            ps.close();
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            doGet(req, resp);
        }
    
    }
    View Code

    最后配置servlet:

    <servlet>
        <servlet-name>QueryOrderServlet</servlet-name>
        <servlet-class>com.moka.servlet.QueryOrderServlet</servlet-class>
    </servlet>
         
    <servlet-mapping>
        <servlet-name>QueryOrderServlet</servlet-name>
        <url-pattern>/servlet/QueryOrderServlet</url-pattern>
    </servlet-mapping>
  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/moka/p/3080351.html
Copyright © 2011-2022 走看看