day20-实战3

来源:互联网 发布:中小学生一起作业软件 编辑:程序博客网 时间:2024/06/05 18:47
回顾:
分类信息展示
包含
ajax
$.get(url,params,function(data){},type);
$.post(url,params,function(data){},type);

$.ajax(选项);
选项:
url:"/store/xxx",
type:"get",
data:"username=tom",
success:function(obj){},
error:function(){},
dataType:"json",
async:true
首页上商品的展示
单个商品的详情
分页查询
PageBean
list//数据 通过limit m,n
currPage//当前页码
pageSize//显示的条数
totalPage//总页数
totalCount//总条数
/////////////////////////////
缓存技术:
ehcache:
将不常用的数据放到内存中,需要的时候直接从内存中获取.
使用步骤:
1.jar包
2.配置文件
3.获取缓存管理者
4.获取指定名称的缓存对象
5.通过指定的key获取element
6.判断element是否为空
若为空,查询,将结果封装成Element,put进去
若不为空,getObjectValue();
//////////////////////////////////////////////////
//////////////////////////////////////////////////
//////////////////////////////////////////////////
案例1-将商品添加到购物车()
需求:
在商品详情页面上,输入购买的数量,点击加入购物车,在购物车页面上展示里面所有的商品
分析:
涉及的实体:
购物车 购物车项 商品
购物车中的内容
购物车项的map集合(map<商品的id,购物车项>)
总金额

add2Cart(购物车项)
removeFromCart(String 商品的id)
clearCart()

购物项中的内容
商品对象
购买数量
小计
步骤分析:
1.商品详情页面,输入购买的数量,点击加入购物车
/store/cart?method=add&pid=??&count=??
2.在cartservlet中的add方法操作
先获取两个参数 pid 和 count
调用ProductService 通过id获取一个商品
拼装CartItem
Product--查询出来
count--传递过来了
suctotal--计算
3.获取购物车,调用add2Cart(cartitem)
4.页面跳转
重定向 /jsp/cart.jsp
////////////////////////
案例2-对购物车进行操作(删除)
步骤分析:
1.在购物车页面上,点击删除
/store/cart?method=remove&pid=??
2.在cartServlet中编写remove
先获取商品的pid
获取购物车
删除购物车项
3.重定向到/jsp/cart.jsp
案例3-对购物车进行操作(清空购物车)
步骤分析:
1.在购物车页面上,有一个清空购物车的连接
/store/cart?method=clear
2.在cartServlet中需要提供 clear
先获取购物车
调用Clearcart方法
重定向 jsp/cart.jsp页面
3.判断购物车是否为空,
若为空:提示购物车空空如也
若不为空:展示
///////////////////////////////////////////
案例4-生成订单
需求:
在购物车页面上,有i一个提交订单,点击的时候,将用户购物车中的商品添加到数据库中.
实体:
用户
订单
订单项(中间表)
商品
创建表:
订单表
CREATE TABLE `orders` (
`oid` varchar(32) NOT NULL,
`ordertime` datetime DEFAULT NULL,
`total` double DEFAULT NULL,
`state` int(11) DEFAULT NULL,
`address` varchar(30) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`telephone` varchar(20) DEFAULT NULL,
`uid` varchar(32) DEFAULT NULL,
PRIMARY KEY (`oid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
订单项表
CREATE TABLE `orderitem` (
`itemid` varchar(32) NOT NULL,
`count` int(11) DEFAULT NULL,
`subtotal` double DEFAULT NULL,
`pid` varchar(32) DEFAULT NULL,
`oid` varchar(32) DEFAULT NULL,
PRIMARY KEY (`itemid`),
KEY `fk_0001` (`pid`),
KEY `fk_0002` (`oid`),
CONSTRAINT `fk_0001` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`),
CONSTRAINT `fk_0002` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建bean
需要在order实体提供 user对象和list<OrderItem>
需要在orderItem实体中提供 product对象和order对象

步骤分析:
点击生成订单:
/store/order?method=add
创建OrderServlet
add方法中:
1.判断用户是否登录,
2.封装数据 Order
oid 随机
total 购物车中的总金额
ordertime 当前时间

User session中当前用户

订单项集合List<OrderItem>
创建OrderItem,然后添加到list中
orderItem从那里来????????/
购物车中CartItem

name(先不管)
address(先不管)
telephone(先不管)
3.调用orderservice 生成订单
开启事务
先往订单表中插入一条数据
往订单项表中插入n条数据
提交事务


///////////////////////////////////
数据库备份:
图形化工具备份:
mysql数据库通过命令备份:不用登录数据库
mysqldump -uroot -p1234 store28>g:\1.sql
mysql数据库通过命令还原:
前提:手动的创建数据库
方式1:不用登录数据库
mysql -uroot -p1234 bak1<g:\1.sql
方式2:需要登录到指定的数据库上
source g:\1.sql
















原创粉丝点击