028 SSM综合练习04--数据后台管理系统--订单相关操作
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--数据后台管理系统--订单相关操作的更多相关文章
- 029 SSM综合练习05--数据后台管理系统--订单分页查询
1.PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql.oracle.mariaDB.DB2.SQLite.H ...
- 026 SSM综合练习02--数据后台管理系统--数据库表创建及SSM环境搭建
1.数据库准备 本项目我们Oracle数据库,Oracle 为每个项目创建单独user,oracle数据表存放在表空间下,每个用户有独立表空间. (1)采用数据库管理员账号:SYSTEM,再配合数据库 ...
- 031 SSM综合练习07--数据后台管理系统--用户详情查询
1.用户详情查询流程分析 2.代码实现 (1)user-list.jsp页面部分代码 点击jsp页面中的详情按钮,发送请求到UserController.java <!--数据列表--> ...
- 030 SSM综合练习06--数据后台管理系统--SSM权限操作及Spring Security入门
1.权限操作涉及的三张表 (1)用户表信息描述users sql语句: CREATE TABLE users ( id ) DEFAULT SYS_GUID () PRIMARY KEY, email ...
- 027 SSM综合练习03--数据后台管理系统--product-list.jsp和main.jsp页面制作
1.product-list.jsp页面制作 (1)创建一个product-list1.jsp文件,清空,只保留 <%@ page contentType="text/html;cha ...
- 025 SSM综合练习01--数据后台管理系统--功能介绍及数据库表
1.功能介绍 (1)环境搭建 主要讲解maven工程搭建,以及基于oracle数据库的商品表信息,并完成SSM整合.(2)商品查询 基于SSM整合基础上完成商品查询,要掌握主面页面main.jsp及商 ...
- 033 SSM综合练习09--数据后台管理系统--基于AOP的日志处理
1.数据库与表结构 (1)日志表信息描述sysLog (2)Sql语句 CREATE TABLE sysLog ( id ) DEFAULT SYS_GUID () PRIMARY KEY, visi ...
- 032 SSM综合练习08--数据后台管理系统--jsp页面显示当前用户名
1. 页面端标签控制权限 在jsp页面中我们可以使用spring security提供的权限标签来进行权限控制. (1)在pom文件中导入依赖 <dependency> <group ...
- LayUI+SSM实现一个简单的后台管理系统
该后台管理系统是用于管理视频网站数据的,目前分5个菜单项,这篇博客主要讲述[影片管理]的具体功能和实现 后台代码结构和[影片管理]的界面如下图 该界面分为上下2部分,[搜索条件]和[影片列表],2部分 ...
随机推荐
- 数组排序代码,冒泡排序&快速排序&选择排序
冒泡排序: for(var i=0;i<arr.length-1;i++){ for(var j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1 ...
- x64汇编第一讲,Vs系列配置x64环境与x86环境
目录 x64汇编环境配置 一丶x64环境配置 1.1 VS系列编译器配置X64Asm开发环境. 二丶Vs配置X86汇编环境. x64汇编环境配置 一丶x64环境配置 现在windows系统都是64位了 ...
- 使用charles对jmeter进行抓包
- utility.py:61: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array in
utility.py:: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; ...
- python 获取文件本身的绝对路径
tester.py: import os print (os.path.dirname(__file__)) print (os.path.abspath(__file__)) print (os.p ...
- 拦截RestTemplate的请求
RestTemplate一般用于方法内部请求调用,请求报错时难以调试,所以可以为RestTemplate加拦截器进行调试,具体操作如下: 拦截器LoggingClientHttpRequestInte ...
- 如何保证MQ的顺序性?比如Kafka
三.如何保证消息的顺序性 1. rabbitmq 拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点:或者就一个queue但是对应一个consumer,然后 ...
- 【Beta阶段】第十次Scrum Meeting
每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #69 后端文档https://github.com/rRetr0Git/rateMyCourse/issues/69 网站测试.推广 牛宇 ...
- 用JAVA把内存里的二进制文件打包成ZIP包
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...
- ChIP-seq | ATAC-seq | 数据分析流程
思来想去,还是觉得ENCODE的流程靠谱,所以又花了快一周来调试,终于排除万难,跑成功了.[2019年12月08日] 以下是ATAC生成的结果目录: call-align call-call_peak ...