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部分 ...
随机推荐
- Numpy | 06 从已有的数组创建数组
numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个. numpy.asarray(a ...
- 洛谷 P1786 帮贡排序 题解
P1786 帮贡排序 题目背景 在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整. 题目描述 目前 ...
- nginx之动静分离(nginx与php不在同一台服务器)
nginx实现动静分离(nginx与php不在同一个服务器) 使用wordpress-5.0.3-zh_CN.tar.gz做实验 Nginx服务器的配置: [root@app ~]# tar xf w ...
- ffmpeg结合SDL编写播放器(一)
ffmpeg 工具是一个高效快速的命令行工具,进行视音频不同格式之间的转换. ffmpeg命令行 ffmpeg可以读取任意数量的输入“文件”(可以是常规文件,管道,网络流,抓取设备等)读取,由 -i ...
- TypeScript 真香系列——接口篇
接口带来了什么好处 好处One —— 过去我们写 JavaScript JavaScript 中定义一个函数,用来获取一个用户的姓名和年龄的字符串: const getUserInfo = funct ...
- 深度学习剖根问底: Adam优化算法的由来
在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法? 这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳 ...
- Kibana数据可视化
Kibana数据可视化 1,3.1使用logstash导入数据的问题 会出现错误提示: [location] is defined as an object in mapping [doc] but ...
- dubbo源码分析- 集群容错之Cluster(一)
1.集群容错的配置项 failover - 失败自动切换,当出现失败,重试其他服务器(缺省),通常用于读操作,但重试会带来更长的延时. failfast - 快速失效,只发起一次调用,失败立即报错.通 ...
- win101903版本vmware 14虚拟机插usb设备卡死
win101903版本vmware 14虚拟机插usb设备卡死 问题的环境: win10,1903版本: vmware 14 版本: 安装的是ubuntu1604虚拟机: 当插入usb摄像头,并连接到 ...
- i系列标准-互联网周刊
原文:http://www.enet.com.cn/article/2019/0429/A20190429062899.html 传统意义上的规模.现代意义上的工具时代感.永远不会改变的最高意义上的使 ...