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>
  • 相关阅读:
    Windows命令行乱码问题解决
    Mysql中in语句排序
    MyBatis批量修改操作
    MyBatis联合查询association使用
    【转】Nginx 安装配置
    【转】解决编译安装NGINX时make报错
    【转】ora-00031:session marked for kill处理oracle中杀不掉的锁
    IOC-AOP
    【转】 linux之sed用法
    【转】Nginx+Tomcat+Memcached集群Session共享
  • 原文地址:https://www.cnblogs.com/moka/p/3080351.html
Copyright © 2011-2022 走看看