您现在的位置是:首页 > 编程 > 

SSM综合案例 订单案例查询功能实现

2025-07-29 08:36:02
SSM综合案例 订单案例查询功能实现 一、课程目标代码语言:javascript代码运行次数:0运行复制1. 【掌握】订单管理查询 2. 查询所有订单信息 . 理解关系--mybatis;一对多 一对一 4. 理解 订单详情二、订单管理2.1 查询所有订单2.1 订单表关系结构图2.2 创建相应的实体类代码语言:javascript代码运行次数:0运行复制//会员类 @Data @All

SSM综合案例 订单案例查询功能实现

一、课程目标代码语言:javascript代码运行次数:0运行复制
1. 【掌握】订单管理查询
2.  查询所有订单信息
.  理解关系--mybatis;一对多 一对一
4.  理解 订单详情
二、订单管理

2.1 查询所有订单

2.1 订单表关系结构图
2.2 创建相应的实体类
代码语言:javascript代码运行次数:0运行复制
//会员类
@Data
@AllArgsCtructor
@oArgsCtructor
public class Member {
    private int id;
    private String name;
    private String nickame;
    private String phoneum;
    private String email;
}

//旅客类
@Data
@AllArgsCtructor
@oArgsCtructor
public class Traveller {
    private int id;
    private String name;
    private String ;
    private String phoneum;
    private int credentialsType;//'证件类型 0身份证 1护照 2军官证',
    private String credentialsum;// '证件号码',
    private int travellerType;//'旅客类型(人) 0  1 儿童',
}

//订单类
@Data
@oArgsCtructor
@AllArgsCtructor
public class Order{
    private int id;
    private String orderum;
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
    private Date orderTime;
    private int peopleCount;
    private String orderDesc;
    private int payType;//'支付方式(0 支付宝 1 2 其他'
    private int orderStatus;// '订单状态(0未支付1已支付)',
    private int productId;// '产品id外键',
    private int memberId;// '会员(联系人)id外键',
    private String orderTimeStr;    //在需要修改的成员变量后加Str
    
    private Product product;
    private List<Traveller> travellers;
    
    //1.获取日期格式化信息;
    public String getOrderTimeStr() {
        // 对日期格式化
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        if (null != orderTime) {
            orderTimeStr = dateFormat.format(orderTime);
        }
        return orderTimeStr;
    }
    public String getPayTypeStr() {
        String pageTypeStr;  //将这个变量返回一下
        switch (payType){
            case 0:pageTypeStr="支付宝";break;
            case 1:pageTypeStr="";break;
            default:pageTypeStr="其他";break;
        }
        return pageTypeStr;
    }

    public String getOrderStatusStr() {
       return orderStatus==0? "未支付":"已支付";
    }
}
编写OrderMapper
代码语言:javascript代码运行次数:0运行复制
public interface OrderMapper {   
    List<Order> findAll();
编写OrderService
代码语言:javascript代码运行次数:0运行复制
public interface OrderService {
    List<Order> findAll();
}

实现类

代码语言:javascript代码运行次数:0运行复制
@Service
public class OrderServiceImpl implements OrderService {
    
    @Autowired
    private OrderMapper orderMapper;
   
    @Override
    public List<Order> findAll() {
        return orderMapper.findAll();
    }
}
编写OrderController
代码语言:javascript代码运行次数:0运行复制
@Controller
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private OrderService orderService;
    /**
     * 分页查询所有订单
     * @param page
     * @param limit
     * @return
     */
    @RequestMapping("/findAll")
     public ModelAndView findAll(@RequestParam(name = "page",defaultValue = "1")int pageum,
                                  @RequestParam(name = "limit",defaultValue = "5")int pageSize){
        //利用分页,赋值
        Page page= PageHelper.startPage(pageum,pageSize);
        ModelAndView mv=new ModelAndView();
        // 查询数据
        List<Order> orderList = orderService.findAll();
        PageInfo pageInfo=new PageInfo(orderList);
        //为mv设置对象
        mv.addObject("pageInfo",pageInfo);
        mv.setViewame("order-list");
        return mv;
    }
}
编写OrderMapper.xml
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper .0//E" ".dtd">
<mapper namespace="cn.OrderMapper">    
    <!--查询订单,查询订单对应的产品-->
    <resultMap id="findAll_product" type="com.yh.pojo.Orders" autoMapping="true">
        <association property="product" column="productId" select="com.ProductMapper.selectById">
        </association>
    </resultMap>

    <select id="selectAll" resultMap="findAll_product">
        select * from orders
    </select>
</mapper>
测试

总结:这里建议使用findAll,注意和之前的Product的定义保持一致,再次来理解restful风格。 好处:前后端分离开发,风格统一; /项目名/product/findAll /项目名/order/findAll /项目名/user/findAll

2.2 订单详情

查询订单详情流程

点击订单详情,查询当前订单关联信息在页面显示

2.1 5表关联查询

代码语言:javascript代码运行次数:0运行复制
select *,o.id oid,p.id pid,t.id tid,t.`name` tname,t.phoneum tnum
from orders o
  left join product p on o.productId=p.id
  left join member m on  =m.id
  left join order_traveller ot on o.id= -- 这些继续和游客表建立关联;
  left join traveller t    on =t.id
where o.id=1
2.2 Member实体类
代码语言:javascript代码运行次数:0运行复制
//会员类  代码同上
Traveller实体类
代码语言:javascript代码运行次数:0运行复制
//旅客类
@Data
@AllArgsCtructor
@oArgsCtructor
public class Traveller {
    private int id;
    private String name;
    private String ;
    private String phoneum;
    private int credentialsType;//'证件类型 0身份证 1护照 2军官证',
    private String credentialsum;// '证件号码',
    private int travellerType;//'旅客类型(人) 0  1 儿童',
    private String credentialsTypeStr;
    private String travellerTypeStr;
    
    public String getCredentialsTypeStr() {
        String typeStr="";
        switch (credentialsType){
            case 0:typeStr="身份证";break;
            case 1:typeStr="护照";break;
            case 2:typeStr="军官证";break;
        }
        return typeStr;
    }

    public String getTravellerTypeStr() {
        return travellerType==0?"":"儿童";
    }
}
编写OrderMapper
代码语言:javascript代码运行次数:0运行复制
public interface OrderMapper {
    //根据id查询订单详细信息
    public Order findById(int id);
}
编写Orderervice
代码语言:javascript代码运行次数:0运行复制
//2.根据id来查询订单;
    public Order findById(Integer id);

实现类

代码语言:javascript代码运行次数:0运行复制
public Order findById(Integer id) {
        return orderMapper.findById(id);
}
编写OrderController
代码语言:javascript代码运行次数:0运行复制
@RequestMapping("/findById")
    public String findById(HttpServletRequest request,int id){
        Order order = ordersService.findById(id);
        request.setAttribute("order",orders);
        return "order-show";
    }
编写OrderMapper.xml

方式一:

代码语言:javascript代码运行次数:0运行复制
<!--*****************************resultMap:findByIdMap 定义********************-->
    <resultMap id="findByIdMap" type="Order" autoMapping="true">
        <!--订单表的id 主键-->
        <id property="id" column="oid"/>
        <!-- 映射到产品表   -->
        <association property="product" autoMapping="true">
            <id property="id" column="pid"/>
        </association>
        <!-- 映射到会员表   -->
        <association property="member" autoMapping="true">
            <id property="id" column="mid"/>
        </association>
        <!-- 映射到游客表,订单表和游客表的关系是啥??? M: 多对多的关系   -->
        <collection property="travellers" ofType="Traveller" autoMapping="true">
            <id property="id" column="tid"/>
            <result property="name" column="tname"/>
            <result property="phoneum" column="tnum"/>
        </collection>
    </resultMap>
    <!-- .findById这个方法的编写;由于是复杂数据类型,所以,返回类型是resultMap,不是resultType   -->
    <select id="findById" resultMap="findByIdMap">
        select *,o.id oid,p.id pid,m.id mid,t.id tid,t.`name` tname,t.phoneum tnum
        from orders o
            left join product p on o.productId=p.id
            left join member m on  =m.id
            left join order_traveller ot on o.id= -- 这些继续和游客表建立关联;
            left join traveller t    on =t.id
        where o.id=#{id}
    </select>

方式二:

代码语言:javascript代码运行次数:0运行复制
<resultMap id="o_p_m_t" type="com.yh.pojo.Orders" autoMapping="true">
        <association property="product" column="productId" select="com.ProductMapper.selectById"> </association>
        <association property="member" column="memberId" select="com.MemberMapper.selectById"></association>
        <collection property="travellers" column="id" select="com.TravellerMapper.selectByOid"></collection>
    </resultMap>

    <select id="selectById" resultMap="o_p_m_t">
        select * from orders where id=#{id}
    </select>
代码语言:javascript代码运行次数:0运行复制
//根据产品id查询产品信息
    @Select("select * from product where id =#{id}")
    public Product selectById(int id);

    //根据会员id查询会员信息
    @Select("select * from member where id=#{id}")
    public List<Member> selectById(int id);
        
    //根据订单id查询旅客信息
    @Select("select t.* from traveller t,order_traveller ot where t.id= and =#{oid}")
    public List<Traveller> selectByOid(int oid);
测试

2. 多条件模糊查询

就是在查询所有数据的基础上添加查询条件

编写OrderMapper
代码语言:javascript代码运行次数:0运行复制
public interface OrderMapper {
    //根据查询所有数据根据orderum查询  productame模糊查询
   public List<Order> selectAll(@Param("orderum") String orderum, @Param("productame") String productame);
}
编写OrderService
代码语言:javascript代码运行次数:0运行复制
public interface OrderService {
   //根据查询所有数据根据orderum查询  productame模糊查询
   public List<Order> findAll(String orderum, String productame);
}
代码语言:javascript代码运行次数:0运行复制
@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private OrderMapper orderMapper;

    /**
     * 根据查询所有数据根据orderum查询  productame模糊查询
     * @param orderId
     * @return
     */
    @Override
    public List<Order> findAll(String orderum, String productame) {
        return orderMapper.selectAll(orderum,  productame);
    }

}
编写OrdersController
代码语言:javascript代码运行次数:0运行复制
@Controller
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private OrderService orderService;

     /**
     * 根据查询所有数据根据orderum查询  productame模糊查询
     * @param page limit key value
     * @return
     */
    @RequestMapping("/findAll")
    public String findAll(HttpServletRequest request, @RequestParam(value = "page",required = false,defaultValue = "1") int page, @RequestParam(value = "limit",required = false,defaultValue = "5")int limit,@RequestParam(value = "key",required = false,defaultValue = "")String key,@RequestParam(value = "value",required = false,defaultValue = "") String value){
        PageHelper.startPage(page,limit);
        List<Orders> all =null;
       switch (key){
           case "orderum":
              all= ordersService.findAll(value,null);
              break;
           case "productame":
               all= ordersService.findAll(null,value);
               break;
           case "":
                all= ordersService.findAll(null,null);
       }
        request.setAttribute("select",key);
        request.setAttribute("selectValue",value);

        PageInfo<Orders> pageInfo=new PageInfo<>(all);
        request.setAttribute("pageInfo",pageInfo);
        return "/orders/orders-list";
    }
}
编写OrdersMapper.xml
代码语言:javascript代码运行次数:0运行复制
<resultMap id="o_p" type="com.yh.pojo.Order" autoMapping="true">
        <association property="product" column="productId" autoMapping="true">

        </association>
    </resultMap>

    <!-- 如果根据产品名称查询订单 需要两表关联查询 确定结果 -->
    <select id="selectAll" resultMap="o_p">
        select o.id,,,,p.productame,p.productPrice from orders o,product p where o.productId=p.id

            <if test="orderum!='' and orderum!=null">
                and   =#{orderum}
            </if>
            <if test="productame!='' and productame!=null">
                and   p.productame like "%" #{productame} "%"
            </if>

    </select>

maven下支持jdk1.8

代码语言:javascript代码运行次数:0运行复制
<!--  配置插件-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>
测试
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-10-20,如有侵权请联系 cloudcommunity@tencent 删除string产品数据privatessm

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1269607.html

相关标签:无
上传时间: 2025-07-29 00:32:36
留言与评论(共有 19 条评论)
本站网友 女性吃榴莲最佳时间
1分钟前 发表
t.id tid
本站网友 董永强
25分钟前 发表
product p where o.productId=p.id <if test="orderum!='' and orderum!=null"> and =#{orderum} </if> <if test="productame!='' and productame!=null"> and p.productame like "%" #{productame} "%" </if> </select>maven下支持jdk1.8代码语言:javascript代码运行次数:0运行复制<!-- 配置插件--> <build> <plugins> <plugin> <groupId>org.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>测试本文参与 腾讯云自媒体同步曝光计划
本站网友 最红星期五
24分钟前 发表
t.`name` tname
本站网友 房价走势分析
18分钟前 发表
typeStr="护照";break; case 2
本站网友 the出走
17分钟前 发表
原始发表:2022-10-20
本站网友 胎儿打嗝
9分钟前 发表
defaultValue = "5")int pageSize){ //利用分页
本站网友 快速全身美白的方法
0秒前 发表
@Param("productame") String productame); }编写OrderService代码语言:javascript代码运行次数:0运行复制public interface OrderService { //根据查询所有数据根据orderum查询 productame模糊查询 public List<Order> findAll(String orderum
本站网友 盼盼门业
14分钟前 发表
int id){ Order order = ordersService.findById(id); request.setAttribute("order"
本站网友 崇文门饭店
29分钟前 发表
分享自作者个人站点/博客
本站网友 老年性痴呆
4分钟前 发表
pageSize); ModelAndView mv=new ModelAndView(); // 查询数据 List<Order> orderList = orderService.findAll(); PageInfo pageInfo=new PageInfo(orderList); //为mv设置对象 mv.addObject("pageInfo"
本站网友 使用方法
14分钟前 发表
多对多的关系 --> <collection property="travellers" ofType="Traveller" autoMapping="true"> <id property="id" column="tid"/> <result property="name" column="tname"/> <result property="phoneum" column="tnum"/> </collection> </resultMap> <!-- .findById这个方法的编写;由于是复杂数据类型
本站网友 北京环球贸易中心
3分钟前 发表
private String credentialsTypeStr; private String travellerTypeStr; public String getCredentialsTypeStr() { String typeStr=""; switch (credentialsType){ case 0
本站网友 房屋赠与过户费用
23分钟前 发表
订单管理2.1 查询所有订单2.1 订单表关系结构图2.2 创建相应的实体类代码语言:javascript代码运行次数:0运行复制//会员类 @Data @AllArgsCtructor @oArgsCtructor public class Member { private int id; private String name; private String nickame; private String phoneum; private String email; } //旅客类 @Data @AllArgsCtructor @oArgsCtructor public class Traveller { private int id; private String name; private String ; private String phoneum; private int credentialsType;//'证件类型 0身份证 1护照 2军官证'
本站网友 救护证
3分钟前 发表
} //订单类 @Data @oArgsCtructor @AllArgsCtructor public class Order{ private int id; private String orderum; @DateTimeFormat(pattern="yyyy-MM-dd HH
本站网友 苹果的功效与作用
20分钟前 发表
pageTypeStr="其他";break; } return pageTypeStr; } public String getOrderStatusStr() { return orderStatus==0? "未支付"
本站网友 骚b网
12分钟前 发表
m.id mid
本站网友 广州新世纪白癜风
29分钟前 发表
"儿童"; } }编写OrderMapper代码语言:javascript代码运行次数:0运行复制public interface OrderMapper { //根据id查询订单详细信息 public Order findById(int id); }编写Orderervice代码语言:javascript代码运行次数:0运行复制//2.根据id来查询订单; public Order findById(Integer id);实现类代码语言:javascript代码运行次数:0运行复制public Order findById(Integer id) { return orderMapper.findById(id); }编写OrderController代码语言:javascript代码运行次数:0运行复制@RequestMapping("/findById") public String findById(HttpServletRequest request
本站网友 麝鼠
4分钟前 发表
原始发表:2022-10-20