前言:hello!!!在前几天给大家介绍到了-----门店管理模块,今天的订单模块和管理模块其实相差无几,实现方式可以说几乎相同!!不过还是得给大家好好的讲解一下订单模块,让大家对项目有更深的了解。
文章目录
后端部分
1.创建com.it.pojo.Order实体类,用于封装所有的订单信息
package com.it.pojo;
import java.util.Date;
/**
* 订单信息类, 用于封装订单信息
*/
public class Order {
//1.声明属性
private Integer id; //订单id
private Integer doorId; //门店id
private String orderNo; //订单编号
private String orderType;//订单类型(巧克力蛋糕/奶茶/咖啡等)
private Integer pnum; //用餐人数
private String cashier; //收银员
private Date orderTime; //下单时间
private Date payTime; //支付时间
private String payType; //支付类型(微信支付/支付宝支付)
private Double price; //支付金额
//2.提供getter和setter方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDoorId() {
return doorId;
}
public void setDoorId(Integer doorId) {
this.doorId = doorId;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getOrderType() {
return orderType;
}
public void setOrderType(String orderType) {
this.orderType = orderType;
}
public Integer getPnum() {
return pnum;
}
public void setPnum(Integer pnum) {
this.pnum = pnum;
}
public String getCashier() {
return cashier;
}
public void setCashier(String cashier) {
this.cashier = cashier;
}
public Date getOrderTime() {
return orderTime;
}
public void setOrderTime(Date orderTime) {
this.orderTime = orderTime;
}
public Date getPayTime() {
return payTime;
}
public void setPayTime(Date payTime) {
this.payTime = payTime;
}
public String getPayType() {
return payType;
}
public void setPayType(String payType) {
this.payType = payType;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
//3.重写toString
@Override
public String toString() {
return "Order [id=" + id + ", doorId=" + doorId + ", orderNo=" + orderNo + ", orderType=" + orderType
+ ", pnum=" + pnum + ", cashier=" + cashier + ", orderTime=" + orderTime + ", payTime=" + payTime
+ ", payType=" + payType + ", price=" + price + "]";
}
}
2.在resources/mybatis/mapper 目录下创建Order的映射文件—OrderMapper.xml
什么是resultmap:
- resultMap 是为了解决 当数据表中的列名和pojo类中的属性名不一致的问题
- resultMap 中配置了数据表中的列和pojo类中的属性之间的对应关系 (也就是映射)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 订单表的映射文件 namespace值为对应接口的全路径 -->
<mapper namespace="com.it.mapper.OrderMapper">
<!--
resultMap 是为了解决 当数据表中的列名和
pojo类中的属性名不一致的问题
resultMap 中配置了 数据表中的列 和 pojo类
中的属性 之间的对应关系 (也就是映射)
-->
<resultMap type="com.it.pojo.Order"
id="orderRM">
<id column="id" property="id"/>
<result column="door_id" property="doorId" />
<result column="order_no" property="orderNo"/>
<result column="order_type" property="orderType"/>
<result column="pnum" property="pnum"/>
<result column="cashier" property="cashier"/>
<result column="order_time" property="orderTime"/>
<result column="pay_time" property="payTime"/>
<result column="pay_type" property="payType"/>
<result column="price" property="price"/>
</resultMap>
<!-- 1.查询所有订单
tb_order表中的列和Order类中的属性名
不一致会导致数据封装失败!!!
id id setId()
door_id doorId setDoorId()
如果表中的列和pojo类中的属性名不一致
这里需要将resultType改为resultMap
-->
<select id="findAll" resultMap="orderRM">
select * from tb_order
</select>
<!-- 2.根据id删除订单信息 -->
<delete id="deleteById">
delete from tb_order
where id=#{
id}
</delete>
<insert id="addOrder">
insert into tb_order
values(#{
id},#{
doorId},#{
orderNo},
#{
orderType},#{
pnum},#{
cashier},
#{
orderTime},#{
payTime},#{
payType},
#{
price})
</insert>
<!-- 4.根据id查询订单信息 -->
<select id="findById" resultMap="orderRM">
select * from tb_order
where id=#{
id}
</select>
<!-- 5.根据id修改订单信息 -->
<update id="updateById">
update tb_order set door_id=#{
doorId},
order_no=#{
orderNo},order_type=#{
orderType},
pnum=#