javaEE(idea)实现购物

您所在的位置:网站首页 idea开发手机格式网页 javaEE(idea)实现购物

javaEE(idea)实现购物

2024-07-09 15:11| 来源: 网络整理| 查看: 265

此为上课老师所教授内容。写的目的权当为我温习的方法。持续更新中!!!

数据库的设计 ///数据库的逻辑设计(简略的E-R图)/ 具体的数据库表的设计: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 接下来是连接数据库的方法: 先在pom.xml里面加入mybatis的依赖(建项目时就可以选中了,后期也可以手动添加) 在application.properties下,写入基础的数据库名,数据库密码,端口号什么的。 在这里插入图片描述

由于时间久远,等到问清楚在编辑完全。 下面是具体的模块实现:

在这里插入图片描述 /// 购物车逻辑层 // 在这里插入图片描述 ///实现购物车的中文表达式 在这里插入图片描述

///实现购物车的具体代码块 首先明白所需的俩个所需"辅助工具"。 1.cookie和session 什么是Cookies(“小甜饼”)呢?简单来说,Cookies就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookies 会把你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。

cookies有什么作用呢?许多网站上都有新用户注册这一项,有时注册了一下,等到下次再访问该站点时,会自动识别到你,并且向你问好,是不是觉得很亲切?当然这种作用只是表面现象,更重要的是,网站可以利用cookies跟踪统计用户访问该网站的习惯,比如什么时间访问,访问了哪些页面,在每个网页的停留时间等。利用这些信息,一方面是可以为用户提供个性化的服务,另一方面,也可以作为了解所有用户行为的工具,对于网站经营策略的改进有一定参考价值。例如,你在某家航空公司站点查阅航班时刻表,该网站可能就创建了包含你旅行计划的Cookies,也可能它只记录了你在该站点上曾经访问过的Web页,在你下次访问时,网站根据你的情况对显示的内容进行调整,将你所感兴趣的内容放在前列。这是高级的Cookie应用。目前Cookies 最广泛的是记录用户登录信息,这样下次访问时可以不需要输入自己的用户名、密码了——当然这种方便也存在用户信息泄密的问题,尤其在多个用户共用一台电脑时很容易出现这样的问题。 我的理解就是,在每个网页未登陆时,浏览器给缓存的地方,存一下你的id。 参考文献: https://baike.baidu.com/item/cookie/1119?fr=aladdin 2.redis Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

拿大型网站来举个例子,比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

然后是代码块 Sku_info (定义的是商品的具体参数)

package com.mall.entity; public class Sku_info { private String color;//颜色 private int size;//尺寸 private int sku_id; private String sku_name;//商品名 private String saler_name;//卖家店名或者姓名 private String image_path;//商品的图片对应路径 //一下俩个字段表示的是seller_info表和sku_info表是1 vs n 的关系,真实淘宝为n vs m,这里简化 private String seller_id; private String seller_name; public Sku_info(String color, int size, int sku_id, String sku_name, String saler_name, String image_path) { this.color = color; this.size = size; this.sku_id = sku_id; this.sku_name = sku_name; this.saler_name = saler_name; this.image_path = image_path; } public Sku_info() { } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getSku_id() { return sku_id; } public void setSku_id(int sku_id) { this.sku_id = sku_id; } public String getSku_name() { return sku_name; } public void setSku_name(String sku_name) { this.sku_name = sku_name; } public String getSaler_name() { return saler_name; } public void setSaler_name(String saler_name) { this.saler_name = saler_name; } public String getImage_path() { return image_path; } public void setImage_path(String image_path) { this.image_path = image_path; } public String getSeller_id() { return seller_id; } public void setSeller_id(String seller_id) { this.seller_id = seller_id; } public String getSeller_name() { return seller_name; } public void setSeller_name(String seller_name) { this.seller_name = seller_name; } }

BuyerItem(购物车的明细)

package com.mall.entity; import com.fasterxml.jackson.annotation.JsonIgnore; import java.io.Serializable; //购物车明细类,就是购物车里面包含的商品信息和数量 public class BuyerItem implements Serializable { private static final long serialVersionUID= 1L; //传入具体的商品主键id获取所需的商品信息 private Sku_info sku_info; private boolean isHave = true; private int amount = 0; public Sku_info getSku_info() { return sku_info; } public void setSku_info(Sku_info sku_info) { this.sku_info = sku_info; } public boolean isHave() { return isHave; } public void setHave(boolean have) { isHave = have; } public int getAmount() { return amount; } public void setAmount(int amount) { this.amount = amount; } @JsonIgnore public void incrementAmount(int amount){ this.amount += amount;//修改数量 } public BuyerItem() { this.sku_info = sku_info; this.isHave = isHave; this.amount = amount; } }

Buycart(购物车类)

package com.mall.service; import com.fasterxml.jackson.annotation.JsonIgnore; import com.mall.entity.BuyerItem; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class BuyerCart implements Serializable { private static final long serialVersionUID =1L; private List items = new ArrayList(); private double totalMoney = 0; public List getItems() { return items; } public void setItems(List items) { this.items = items; } //用来处理购物车里面添加一个新的商品 @JsonIgnore public void addItem(BuyerItem buyeritem){ this.items.add(buyeritem); } //没写好,目是查看购物车里面是否已经存在该商品 public int findItem(BuyerItem buyeritem){ int index = -1; //此处查找比较有问题 for (int i = 0;i0) buyerCart.findItem(buyerItem); if (index >= 0){ buyerCart.getItems().get(index).incrementAmount(buyerItem.getAmount()); } else buyerCart.addItem(buyerItem); //序列化成字符串 JSONObject fromObject = JSONObject.fromObject(buyerCart) ; System.out.println(fromObject.toString()); if(user_name == null)//根据用户是否登录把购物车存入到cookie或者redis。 CookieUtil.writeCookie(response, "buyerCart", fromObject.toString()); else redisUtil.set(user_name, fromObject.toString()); //存入成功后刷新购物车或者购物车的js代码。 return "cart"; } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3