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. POJ2139-Six Degrees of Cowvin Bacon-(Floyd_Warshall)

    题意:有n只牛拍电影m部电影,知道每部电影有哪些牛参与,一起拍电影的牛之间维度为1,ab拍电影则ab之间的维度为1,如果bc一起拍电影,ac没有一起,则ac之间的维度为2,以此类推.求哪知牛到所有牛之 ...

  2. MongoDB索引存储BTree与LSM树(转载)

    1.为什么 MongoDB 使用B-树,而不是B+树 MongoDB 是一种 nosql,也存储在磁盘上,被设计用在数据模型简单,性能要求高的场合.性能要求高,我们看B-树与B+树的区别: B+树内节 ...

  3. 使用Map文件查找崩溃信息

    简介 编写整洁的应用程序是一回事.但是当用户告诉你你的软件已经崩溃时,你知道在添加其他功能之前最好先解决这个问题.如果你够幸运的话,用户会有一个崩溃地址.这将大大有助于解决这个问题.但是你怎么能用这个 ...

  4. AsyncAPI 试用

    AsyncAPI 提供了类似openapi的代码生成,以下demo,来自官方,只是目前官方的generator有些问题以下 同时说明运行中的一些问题 环境准备 主要是安装依赖组件 npm instal ...

  5. 关于api创建监控项,添加灵活调度的事件间隔

    在api文档中没有明确说明,可以查询数据库,得到的是一个字符串,

  6. Vuejs组件基础

    一.概念 ①组件就是对局部视图的封装,组件思想就是把一个很大的复杂的 Web 页面视图给拆分成一块一块的组件视图,然后利用某种特定的方式把它们组织到一起完成完整的 Web 应用构建. ②目前主流的前端 ...

  7. for、for...in、for...of的区别

    当有一个元素未定义时,for和for...of遍历该元素为undefined,for...in遍历不到. 如果是自定义属性,for和for...of无法遍历,for...in可以遍历. for...i ...

  8. SHOI做题记录

    LOJ #2027. 「SHOI2016」黑暗前的幻想乡 考虑到每个公司一条边,那就等价于没有任何一家公司没有边. 然后就可以容斥+矩阵树定理,没了. LOJ #2028. 「SHOI2016」随机序 ...

  9. (转载)如何在当前目录下快速打开cmd

    很多时候我们需要打开命令行然后进入到相应目录进行一些操作. 常规的做法是: Win+R打开运行窗口 输入"cmd"回车打开命令行窗口 假如我们要进入的是D盘foo文件夹下的一个ba ...

  10. Nexus OSS私服仓库的备份与迁移

    背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...