1.订单表及其关联表的关系分析

2.数据库表对应实体类

(1)Orders.java

package lucky.domain;

import lucky.utils.DateUtils;

import java.util.Date;
import java.util.List; /**
* 订单表实体类
* 对应数据库中orders表
* 注意:实体类中的成员变量名必须与数据库中的字段名一致,否则会给后续开发造成不必要的麻烦
*/
public class Orders {
private String id;
private String orderNum;
private Date orderTime;
private String orderTimeStr;
private int orderStatus;
private String orderStatusStr;
private int peopleCount;
private Product product;
private List<Traveller> travellers;
private Member member;
private Integer payType;
private String payTypeStr;
private String orderDesc; public String getOrderStatusStr() {
//订单状态(0未支付,1已支付)
if(orderStatus==0){
orderStatusStr="未支付";
}else if(orderStatus==1){
orderStatusStr="已支付";
}
return orderStatusStr;
} public void setOrderStatusStr(String orderStatusStr) {
this.orderStatusStr = orderStatusStr;
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getOrderNum() {
return orderNum;
} public void setOrderNum(String orderNum) {
this.orderNum = orderNum;
} public Date getOrderTime() {
return orderTime;
} public void setOrderTime(Date orderTime) {
this.orderTime = orderTime;
} public String getOrderTimeStr() {
if(orderTime!=null){
orderTimeStr=DateUtils.dateToString(orderTime,"yyyy-MM-dd HH:mm");
}
return orderTimeStr;
} public void setOrderTimeStr(String orderTimeStr) {
this.orderTimeStr = orderTimeStr;
} public int getOrderStatus() {
return orderStatus;
} public void setOrderStatus(int orderStatus) {
this.orderStatus = orderStatus;
} public int getPeopleCount() {
return peopleCount;
} public void setPeopleCount(int peopleCount) {
this.peopleCount = peopleCount;
} public Product getProduct() {
return product;
} public void setProduct(Product product) {
this.product = product;
} public List<Traveller> getTravellers() {
return travellers;
} public void setTravellers(List<Traveller> travellers) {
this.travellers = travellers;
} public Member getMember() {
return member;
} public void setMember(Member member) {
this.member = member;
} public Integer getPayType() {
return payType;
} public void setPayType(Integer payType) {
this.payType = payType;
} public String getPayTypeStr() {
//支付方式(0 支付宝 1 微信 2其它)
if(payType==0){
payTypeStr="支付宝";
}else if(payType==1){
payTypeStr="微信";
}else if(payType==2){
payTypeStr="其他";
}
return payTypeStr;
} public void setPayTypeStr(String payTypeStr) {
this.payTypeStr = payTypeStr;
} public String getOrderDesc() {
return orderDesc;
} public void setOrderDesc(String orderDesc) {
this.orderDesc = orderDesc;
} @Override
public String toString() {
return "Orders{" +
"id='" + id + '\'' +
", orderNum='" + orderNum + '\'' +
", orderTime=" + orderTime +
", orderTimeStr='" + orderTimeStr + '\'' +
", orderStatus=" + orderStatus +
", peopleCount=" + peopleCount +
", product=" + product +
", travellers=" + travellers +
", member=" + member +
", payType=" + payType +
", payTypeStr='" + payTypeStr + '\'' +
", orderDesc='" + orderDesc + '\'' +
'}';
}
}

(2)Member.java

package lucky.domain;

/**
* 会员表实体类
* 对应数据库中member表
* 注意:实体类中的成员变量名必须与数据库中的字段名一致,否则会给后续开发造成不必要的麻烦
*/
public class Member {
private String id;
private String name;
private String nickname;
private String phoneNum;
private String email; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getNickname() {
return nickname;
} public void setNickname(String nickname) {
this.nickname = nickname;
} public String getPhoneNum() {
return phoneNum;
} public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} @Override
public String toString() {
return "Member{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", nickname='" + nickname + '\'' +
", phoneNum='" + phoneNum + '\'' +
", email='" + email + '\'' +
'}';
}
}

(3)Traveller.java

package lucky.domain;

/**
* 旅客表实体类
* 对应数据库中traveller
* 注意:实体类中的成员变量名必须与数据库中的字段名一致,否则会给后续开发造成不必要的麻烦
*/
public class Traveller {
private String id;
private String name;
private String sex;
private String phoneNum;
private Integer credentialsType;
private String credentialsTypeStr;
private String credentialsNum;
private Integer travellerType;
private String travellerTypeStr; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getPhoneNum() {
return phoneNum;
} public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
} public Integer getCredentialsType() {
return credentialsType;
} public void setCredentialsType(Integer credentialsType) {
this.credentialsType = credentialsType;
} public String getCredentialsTypeStr() {
return credentialsTypeStr;
} public void setCredentialsTypeStr(String credentialsTypeStr) {
this.credentialsTypeStr = credentialsTypeStr;
} public String getCredentialsNum() {
return credentialsNum;
} public void setCredentialsNum(String credentialsNum) {
this.credentialsNum = credentialsNum;
} public Integer getTravellerType() {
return travellerType;
} public void setTravellerType(Integer travellerType) {
this.travellerType = travellerType;
} public String getTravellerTypeStr() {
return travellerTypeStr;
} public void setTravellerTypeStr(String travellerTypeStr) {
this.travellerTypeStr = travellerTypeStr;
} @Override
public String toString() {
return "Traveller{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", phoneNum='" + phoneNum + '\'' +
", credentialsType=" + credentialsType +
", credentialsTypeStr='" + credentialsTypeStr + '\'' +
", credentialsNum='" + credentialsNum + '\'' +
", travellerType=" + travellerType +
", travellerTypeStr='" + travellerTypeStr + '\'' +
'}';
}
}

3.订单控制器类 OrdersController.java

package lucky.controller;

import lucky.domain.Orders;
import lucky.service.IOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import java.util.List; /**
* 订单控制器
* @Controller 此注解是Spring的ioc,用于创建对象,用于把当前类对象存入spring容器中
* @RequestMapping url请求的一级目录
* @Autowired 用于注入IProductService的对象
*/
@Controller
@RequestMapping(path = "/orders")
public class OrdersController {
@Autowired
private IOrderService iOrderService; @RequestMapping(path = "/queryAll")
public ModelAndView queryAll() throws Exception{
ModelAndView mv=new ModelAndView();
List<Orders> orders = iOrderService.queryAll();
mv.addObject("ordersList",orders);
mv.setViewName("orders-list");
return mv; }
}

4.service层的接口及其实现类

(1)IOrderService.java

package lucky.service;

import lucky.domain.Orders;

import java.util.List;

public interface IOrderService {
public List<Orders> queryAll() throws Exception; }

(2)OrderServiceImpl.java

package lucky.service.impl;

import lucky.dao.IOrdersDao;
import lucky.domain.Orders;
import lucky.service.IOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service
@Transactional
public class OrderServiceImpl implements IOrderService {
@Autowired
private IOrdersDao iOrdersDao; @Override
public List<Orders> queryAll() throws Exception {
return iOrdersDao.queryAll();
}
}

5.dao层

package lucky.dao;

import lucky.domain.Orders;
import lucky.domain.Product;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select; import java.util.List; public interface IOrdersDao {
/**
* 查询所有订单表
* @return 查询结果
* @throws Exception
* @Select 查询的sql语句
* @Results 映射查询结果集到实体类属性
* column为数据库字段名,porperty为实体类属性名,jdbcType为数据库字段数据类型,id为是否为主键。
* @One 当我们需要通过查询到的一个字段值作为参数,去执行另外一个方法来查询关联的内容,lucky.dao.queryById为要执行的方法
*/
@Select("select * from LUCKY.ORDERS")
@Results({
@Result(id=true,property = "id",column = "id"),
@Result(property = "orderNum",column = "orderNum"),
@Result(property = "orderTime",column = "orderTime"),
@Result(property = "orderStatus",column = "orderStatus"),
@Result(property = "peopleCount",column = "peopleCount"),
@Result(property = "payType",column = "payType"),
@Result(property = "orderDesc",column = "orderDesc"),
@Result(property = "product",column = "productId",javaType = Product.class,one = @One(select = "lucky.dao.IProductDao.queryById")),
})
public List<Orders> queryAll() throws Exception;
}

6.查询结果

028 SSM综合练习04--数据后台管理系统--订单相关操作的更多相关文章

  1. 029 SSM综合练习05--数据后台管理系统--订单分页查询

    1.PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql.oracle.mariaDB.DB2.SQLite.H ...

  2. 026 SSM综合练习02--数据后台管理系统--数据库表创建及SSM环境搭建

    1.数据库准备 本项目我们Oracle数据库,Oracle 为每个项目创建单独user,oracle数据表存放在表空间下,每个用户有独立表空间. (1)采用数据库管理员账号:SYSTEM,再配合数据库 ...

  3. 031 SSM综合练习07--数据后台管理系统--用户详情查询

    1.用户详情查询流程分析 2.代码实现 (1)user-list.jsp页面部分代码 点击jsp页面中的详情按钮,发送请求到UserController.java <!--数据列表--> ...

  4. 030 SSM综合练习06--数据后台管理系统--SSM权限操作及Spring Security入门

    1.权限操作涉及的三张表 (1)用户表信息描述users sql语句: CREATE TABLE users ( id ) DEFAULT SYS_GUID () PRIMARY KEY, email ...

  5. 027 SSM综合练习03--数据后台管理系统--product-list.jsp和main.jsp页面制作

    1.product-list.jsp页面制作 (1)创建一个product-list1.jsp文件,清空,只保留 <%@ page contentType="text/html;cha ...

  6. 025 SSM综合练习01--数据后台管理系统--功能介绍及数据库表

    1.功能介绍 (1)环境搭建 主要讲解maven工程搭建,以及基于oracle数据库的商品表信息,并完成SSM整合.(2)商品查询 基于SSM整合基础上完成商品查询,要掌握主面页面main.jsp及商 ...

  7. 033 SSM综合练习09--数据后台管理系统--基于AOP的日志处理

    1.数据库与表结构 (1)日志表信息描述sysLog (2)Sql语句 CREATE TABLE sysLog ( id ) DEFAULT SYS_GUID () PRIMARY KEY, visi ...

  8. 032 SSM综合练习08--数据后台管理系统--jsp页面显示当前用户名

    1. 页面端标签控制权限 在jsp页面中我们可以使用spring security提供的权限标签来进行权限控制. (1)在pom文件中导入依赖 <dependency> <group ...

  9. LayUI+SSM实现一个简单的后台管理系统

    该后台管理系统是用于管理视频网站数据的,目前分5个菜单项,这篇博客主要讲述[影片管理]的具体功能和实现 后台代码结构和[影片管理]的界面如下图 该界面分为上下2部分,[搜索条件]和[影片列表],2部分 ...

随机推荐

  1. 第8章 动态SQL

    8.1动态SQL中的元素 8.2<if>元素 举例,在映射文件中: <select id="findCustomerByNameAndJobs" paramete ...

  2. [Algorithm] Bitwise Operators

    "|" can be used as assign "&" can be used as check // Read, Write, Execute / ...

  3. 常见WinDbg问题及解决方案

    当你调试一个程序时,你最不想处理的是调试器不能正常工作.当你试图集中精力跟踪一个bug时,总是会因为次要的问题而被忽略,尤其是当调试器的问题导致你失去一个重新编程或者浪费了大量的时间等待调试器完成它, ...

  4. 文件搜索命令(命令搜索)which、whereis

    一.which命令: 搜索命令所在目录(绝对路径)或者别名信息. 用户可以使用的命令存放在: /bin /usr/bin 管理员使用的命令: /sbin /usr/sbin 1.带有别名的命令: 二. ...

  5. 入门平衡树: Treap

    入门平衡树:\(treap\) 前言: 如有任何错误和其他问题,请联系我 微信/QQ同号:615863087 前置知识: 二叉树基础知识,即简单的图论知识. 初识\(BST\): \(BST\)是\( ...

  6. C# 请求数据 方式1

    public static string PostWebRequest2() { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create( ...

  7. Anniversary party(hdu1520)(poj2342)题解

    原题地址:http://poj.org/problem?id=2342 题目大意: 上司和下属不能同时参加派对,求参加派对的最大活跃值. 关系满足一棵树,每个人都有自己的活跃值(-128~127) 求 ...

  8. 统计学基础知识(二)---推断统计学(Inferential Statistics)

    推断统计学(Inferential Statistics):利用样本信息对总体进行估计和假设检验. 总体(population):在一个特定研究中所有感兴趣的个体组成的集合. 样本(sample):总 ...

  9. 服务在kubernetes上优雅退出

    在dashboard上,直接操作一下就可以了:将spec.replicas = 0,对应的容器组会自动销毁

  10. nginx配置自签名https

    nginx配置https是需要CA颁发证书的,为了测试方便,我们可以使用自签名证书 1.如何生成自签名证书 1.1:我们需要为服务端和客户端准备私钥和公钥: //生成服务器端私钥 openssl ge ...