当前位置: 首页 > news >正文

JSP购物车案例精简版-适合小白学习

double totalprice = unitprice*this.quantity;

//返回购物项的总价格

return totalprice;

}

public void setPrice(double price) {

this.price = price;

}

}

购物车实体

package entity;

import java.util.LinkedHashMap;

import java.util.Map;

/**

  • 购物车实体

*/

public class Cart {

//键是书籍的id,值是书

private Map<String,CartItem> bookmap = new LinkedHashMap<>();

//购物车总价

private double price;

//把购物项(用户传递进来的书籍)添加到购物车里面去

public void addBook(Book book){

//获取得到的购物项

CartItem cartItem = bookmap.get(book.getId());

//判断购物车是否存在购物项,如果不存在

if (cartItem==null){

//创建这个购物对象

cartItem = new CartItem();

//将用户传递过来的书籍作为购物项

cartItem.setBook(book);

//默认把该书籍的数量设置为1

cartItem.setQuantity(1);

//把购物项添加到购物车去

bookmap.put(book.getId(),cartItem);

}else {

//如果购物项存在,将购物项的数量+1

cartItem.setQuantity(cartItem.getQuantity()+1);

}

}

public Map<String, CartItem> getBookmap() {

return bookmap;

}

public void setBookmap(Map<String, CartItem> bookmap) {

this.bookmap = bookmap;

}

/**

  • //购物车的总价格就是所有的购物项价格加起来

  • @return

*/

public double getPrice() {

//默认购物车总价格为 0

double totalprice = 0;

//对bookmap进行遍历

for (Map.Entry<String, CartItem> me : bookmap.entrySet()) {

//得到每个购物项

CartItem cartItem = me.getValue();

//将每个购物项的钱加起来,就是购物车的总价了

totalprice+=cartItem.getPrice();

}

return totalprice;

}

public void setPrice(double price) {

this.price = price;

}

}

数据库设计


数据库这里为了方便就用Map集合代替,关键是要懂原理

package dao;

import entity.Book;

import java.util.LinkedHashMap;

import java.util.Map;

/**

  • 用集合模拟数据库

*/

public class bookDB {

//既然是购物车案例,应该会有增删的操作,通过关键字查询书籍,所以使用LinkedHashMap集合

private static Map<String, Book> map = new LinkedHashMap<>();

static {

map.put(“1”,new Book(“1”, “java”, “zhongfucheng”, “好书”, 99));

map.put(“2”,new Book(“2”, “javaweb”, “ouzicheng”, “不好的书”, 44));

map.put(“3”,new Book(“3”, “ajax”, “xiaoming”, “一般般”, 66));

map.put(“4”,new Book(“4”, “spring”, “xiaohong”, “还行”, 77));

map.put(“5”,new Book(“5”, “Java入门到入土”, “LCZ”, “veryGood!”, 99999));

}

//返回map集合

public static Map<String, Book> getAll() {

return map;

}

}

开发DAO


dao层应该至少提供获取所有的书籍和根据关键字获取得到书籍

package dao;

import entity.Book;

import java.util.Map;

/**

  • 获取所有的书籍和根据关键字获取得到书籍

*/

public class bookDao {

//获取存放着书籍的Map集合

public Map getAll() {

return bookDB.getAll();

}

//根据关键字获取某本书籍

public Book find(String id) {

return bookDB.getAll().get(id);

}

}

开发service


service层就是对DAO层的一个封装

这里也为了方便就将所有功能写到一个类中

package service;

import dao.bookDao;

import entity.Book;

import entity.Cart;

import java.util.Map;

/**

  • 业务层(对dao层的封装)

*/

public class BusinessService {

//实例化dao

bookDao bookDao = new bookDao();

/列出所有的书/

public Map getAll() {

return bookDao.getAll();

}

/根据书的id获取书/

public Book findBook(String id) {

return bookDao.find(id);

}

/*

  • 在购买书籍的时候,我们发现需要将书籍添加到购物车上

  • 如果我们直接在Servlet上使用Cart实体对象的addBook()和BookDao对象的find()方法,是可以完成功能的

  • 但是,这样web层的程序就跟Dao层的耦合了,为了代码性的健壮性和解耦,我们在BusinessService中对他俩进行封装

  • 于是有了buyBook()这个方法!

  • */

/把用户想买的书籍添加到当前用户的购物车上/

public void buyBook(String id, Cart cart)

http://www.xdnf.cn/news/798499.html

相关文章:

  • 游戏全区全服和分区分服 QQ斗地主的设计
  • STM32入门教程——按键控制LED光敏传感器控制蜂鸣器
  • SQL Server 2008 R2安装教程(完整图解)
  • java实现俄罗斯方块游戏
  • zend反编译-dezender 使用
  • C语言——_beginthreadex函数创建子线程
  • 微软面试题及其答案(很实用)
  • HBase数据导入——使用 ImportTsv 将数据导入hbase
  • Windows系统缺少找不到normaliz.dll文件的解决办法
  • 联想G450 Linux wifi,联想g450无线网卡驱动,详细教您无线网卡安装教程
  • HTC Desire V/T328w官解刷RECOVERY刷BOOT,root教程
  • 电脑系统提示vcomp100.dll文件缺失该怎么办?提示vcomp100.dll丢失问题怎么解决?
  • Linux系统使用(非常详细)从零基础入门到精通,看完这一篇就够了
  • 联想硬盘保护系统破解及电脑常见密码破解总结
  • 【Docker】总集篇
  • 唐骏....
  • 游戏资源提取软件介绍
  • H264码流结构分析
  • 2024年中国连接器行业头部品牌排名
  • 中国十大最狠的流氓网站曝光!送查杀流氓的工具
  • 无法找到脚本引擎"vbscript"的解决方法
  • java服务器端部署_安装部署服务器和javaweb项目
  • WD西部数据移动硬盘维修数据恢复
  • Spring Boot集成Quartz:轻松实现任务调度
  • python简单心形代码爱情闪字_qq主人寄语闪字代码:完整保存你给的爱
  • C语言,c++均可——贪吃蛇小游戏(护眼,代码保证运行)
  • 10大漏洞评估和渗透测试工具
  • 27个主流的自媒体网站推荐
  • 5种常用Web安全扫描工具,快来查漏补缺吧!
  • 计算机丢失quartz.dll什么意思,计算机中丢失quartz.dll解决方法