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

    对于点菜来说,首先要有菜单,我们建立一张表menutbl来容纳所有菜品数据,此表结构如下:

    为了具体记录每个订单点了什么菜,点多少,我们还需要建立一张表orderdetailtbl来实现,此表结构如下:

    注:orderId与menuId为外键:orderId为ordertbl中的id字段,menuId为menutbl中的id字段

    于是,在服务器端的编程大体与开桌功能相同:建立该表实体类 ---> 写其DAO接口 ---> 实现该接口,这里我们仍然沿用上次建立的OrderDao接口,只在其中新添加一个方法saveOrderDetail()即可。

    WirelessServer中的com.moka.entity中建立orderdetailtbl表实体类:

    /**
     *    用于封装OrderDetailTbl表的实体类
     */
    public class OrderDetail {
        // 编号
        private int id;
        // 此细节单的主订单号
        private int orderId;
        // 菜品编号
        private int menuId;
        // 数量
        private int num;
        // 备注
        private String remark;
        
    getters & setters ..
            
        
    }    
    View Code

    在开桌功能篇写好的OrderDaoImpl中添加如下方法(要在接口OrderDao中定义):

    @Override
        public void saveOrderDetail(OrderDetail orderDetail) {
            // jdbc连接数据库准备工作
            DBUtil util = new DBUtil(); 
            Connection conn = util.openConnection();
            
            // 插入数据库操作用
            String saveOrderSql = "insert into orderdetailtbl (orderId, menuId, num, remark) values (?, ?, ?, ?)";
            PreparedStatement ps = null;
            
            try {
                ps = conn.prepareStatement(saveOrderSql);
                ps.setInt(1, orderDetail.getOrderId());
                ps.setInt(2, orderDetail.getMenuId());
                ps.setInt(3, orderDetail.getNum());
                ps.setString(4, orderDetail.getRemark());
                ps.executeUpdate();
                
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (ps != null) {
                        ps.close();
                        ps = null;
                    }
                    if (conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    View Code

    然后写一个新的OrderDetailServlet:

    public class OrderDetailServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            resp.setContentType("text/html");
            // 获取输出打印流
            PrintWriter pw = new PrintWriter(resp.getOutputStream());
            
            // 读取请求中的order数据
            String orderId = req.getParameter("orderId");
            String menuId = req.getParameter("menuId");
            String dishNum = req.getParameter("dishNum");
            String remark = req.getParameter("remark");
            
            // 将数据添加到一个OrderDetail表对象实例
            OrderDetail detail = new OrderDetail();
            detail.setOrderId(Integer.parseInt(orderId));
            detail.setMenuId(Integer.parseInt(menuId));
            detail.setNum(Integer.parseInt(dishNum));
            detail.setRemark(remark);
            
            // 定单数据存入MySQL端,更新对应桌号是否有人的状态,并获得返回的订单号传回客户端
            OrderDao orderDao = new OrderDaoImpl();
            orderDao.saveOrderDetail(detail);
            pw.print("Dishes added successfully");
            pw.flush();
            pw.close();
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            doGet(req, resp);
        }
    
    }
    View Code

    最后注册servlet:

    <servlet>
        <servlet-name>OrderDetailServlet</servlet-name>
        <servlet-class>com.moka.servlet.OrderDetailServlet</servlet-class>
    </servlet>
         
    <servlet-mapping>
        <servlet-name>OrderDetailServlet</servlet-name>
        <url-pattern>/servlet/OrderDetailServlet</url-pattern>
    </servlet-mapping>

    至此,此功能的服务器端搭建完毕,下篇讨论客户端的编写

  • 相关阅读:
    《软件测试经验与教训》—读书笔记
    【转】性能测试工程师的素质
    【转】如何成为优秀的性能测试工程师
    性能测试学习之路
    FTP 、TCP/IP、HTTP、Cookies、Session
    Loadrunner工具介绍
    tesseract-ocr图像识别技术(一)
    MongoDB 自动分片 auto sharding
    mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍
    java使用memcached2--集群部署
  • 原文地址:https://www.cnblogs.com/moka/p/3080273.html
Copyright © 2011-2022 走看看