购物车--订单模块,练习完成

news2024/11/15 12:13:58

目标:

        在购物车页面,增加一个创建订单的超链接。通过创建订单,在Order表里新增一条数据,同时把session中的订单条目都保存到数据库中。

1、创建两个表,orders用来具体存储每一个订单的细节,order_用来存储某个用户对应的订单号。id都设计为自动增长

2、写一个order类用来对应order_

 

3、给orders类加一个order属性,order里对应的id对应数据表orders里的oid。 

4、写一个orderdao负责向数据表order_ 中添加订单记录。由于我们order_表中的id设计的是自增长,所以每个记录uid都会自动分配一个id。现在我们把uid存进数据库后还要拿着这个分配的id赋值给order本身,便于之后使用。

注意:在 Java 中,可以使用 PreparedStatement 的 getGeneratedKeys() 方法来获取在数据库中自动生成的键值。

 5、再来一个ordersdao类用来把orders类的数据保存到OrderItem表中

 6、我们要在购物车页面加一个超链接便于跳转

7、最后一步:写ordercreate的servlet。

需要完成的操作有:1. 首选判断用户是否登陆,如果没有登陆跳转到登陆页面
                                2. 创建一个订单对象,并设置其所属用户
                                3. 把该订单对象保存到数据库中
                                4. 遍历session中所有的订单项,设置他们的Order。 然后保存到数据库中
                                5. 清空session中的订单项
                                6. 最后打印订单创建成功 

这里其实与之前板块有一个呼应,很多人不明白之前的用户模块的servlet在处理用户登录时用了这句request.getSession().setAttribute("user", user);把数据存进session中,这里第一步判断用户是否登录就用到了这个细节。

到这里大功告成,我们来完整的用一下这个功能。

 

 

 

 

 

最后附上整个练习的代码结构

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于MobileNetV2的Transfer Learning模型,实现物体检测(附源码)

文章目录 一、MobileNet1. 深度可分离卷积(Depthwise separable convolution)2. MobileNet V13. MobileNet V2 二、物体检测源码(基于MobileNetV2) 一、MobileNet 1. 深度可分离卷积(Depthwise separable convolution…

智慧园区综合管理平台开发基本功能有哪些?

随着智慧城市建设与信息化发展,园区管理也需要更加智能便捷化,于是智慧园区管理系统开发应运而生。智慧园区综合管理系统就是利用物联网、大数据等技术工具,顺应产业园区升级发展需求,实现园区环境、设备、安全、基础管理、资源服…

【Linux】进程间通信——命名管道

文章目录 命名管道1. 见一见管道文件mkfifo函数管道文件的使用 2. 命名管道原理如何保证两个毫不相关的进程,看到的是同一个文件,并打开? 3. 用命名管道实现server&client通信如何使用makefile连续生成可执行程序comm.hpp文件server.cc 服…

如何通过 Baklib 平台实现知识共享(内含案例介绍)

在这个信息时代,知识被认为是最重要的资源之一。企业要想保持发展,就必须善于利用和管理知识。而知识管理则是一种涵盖人、过程和技术的活动,它通过收集、整理、传递和应用知识,使组织获得更高的效率、创造力和竞争力。本文将以知…

【Linux】八、Linux进程信号详解(一)

目录 一、认识信号 1.1 生活中的信号 1.2 将1.1的概念迁移到进程 1.3 信号概念 1.4 查看系统定义信号列表 1.5 man 7 signal 1.6 解释1.2的代码样例 1.7 信号处理常见方式概览 二、产生信号 2.1 signal函数 2.2 通过终端按键产生信号 2.3 调用系统函数向进程发信号…

前后端的身份认证【Node.js】

1. 前后端的身份认证 1.1 Web 开发模式 目前主流的 Web 开发模式有两种,分别是: (1)基于服务端渲染的传统 Web 开发模式 (2)基于前后端分离的新型 Web 开发模式 服务端渲染的传统 Web 开发模式 服务端渲染…

力扣面试题 08.06. 汉诺塔问题:思路分析+图文详解+代码实现

文章目录 第一部分:问题描述1.1 题目1.2 示例🍀 示例一🍀 示例二 1.3 提示 第二部分:思路分析第三部分:代码实现 第一部分:问题描述 1.1 题目 🏠 链接:面试题 08.06. 汉诺塔问题 -…

windows安装rabbitmq和环境erlang(最详细版,包括对应关系)

写在最前:不知何时起安装一个mq需要翻无数文章才能安上了,没有一个讲全的,这里写一个详细的教程。 删除旧版本对应关系: 1.在官方文档中找到RabbitMQ版本对应的Erlang版本重新下载安装包文档RabbitMQ Erlang Version Requirements — Rabbit…

大家副业都在做什么?csgo搬砖靠谱的副业推荐给你

从来没想过,以前只会玩CSGO的男孩子,现在居然能借助游戏赚到钱了!甚至不需要什么专业的技巧,简简单单 在steam平台选择有利润的道具后,再上架到国内网易BUFF平台,赚取“信息差”差价而已! 谁大…

itop-3568开发板驱动学习笔记(19)内核工作队列

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 工作队列简介共享工作队列工作结构体初始化 work_struct调度工作队列函数共享工作队列实验 自定义工作队列创建工作队列函数调度和取消调度工作队列刷新工作队列函数删除工作队列函数 内核延时工作队列延时…

成功上岸字节35K,技术4面+HR面,耗时20天,真是不容易

这次字节的面试,给我的感触很深,意识到基础的重要性。一共经历了五轮面试:技术4面+HR面。 下面看正文 本人自动专业毕业,压抑了五个多月,终于鼓起勇气,去字节面试,下面是我的面试过…

kali利用airgeddon破解WiFi (详细安装和使用教程)

目录 前言 一,软件&硬件环境 二,前期配置 Airgeddon安装和调试 #自带 #安装方法一 #安装方法二 #注意 网卡的配置 #打开服务 #加载网卡 三,运行操作 #检查 #主菜单 #打开监听模式 #查看周围可以攻击的网络 #截取…

vue - - - - - vue3全局配置挂载axios

vue3配置axios 1. 安装axios2. 配置拦截器3. vue.config.js代理配置4. 将axios全局挂载4. 文件内使用 1. 安装axios yarn add axios 2. 配置拦截器 创建文件 /src/utils/request.js "use strict";import Vue from "vue"; import axios from "axios&…

从现在起,请你不要用ChatGPT再做这4件事了

ChatGPT已经火爆了快半年了吧,紧接着国内也开始推出了各种仿制品,我甚至一度怀疑,如果人家没有推出ChatGPT,这些仿制品会不会出现。而很多人也嗨皮得不行,搭着梯子爬过高墙,用ChatGPT做各种觉得新鲜的事。但…

电脑可以开机但是无法进入到桌面怎么办?

电脑可以开机但是无法进入到桌面怎么办?有用户的电脑可以正确启动,但是电脑启动之后,却无法进入到系统桌面,而且卡在加载系统的页面中,或者是出现错误代码蓝屏了。这些情况其实都可以通过U盘来重装一个系统&#xff0c…

第七回:如何使用GirdView Widget

文章目录 概念介绍使用方法示例代码经验总结 我们在上一章回中介绍了Image Widget,本章回中将介绍 GirdView这种Widget,闲话休提,让我们一起Talk Flutter吧。 概念介绍 在Flutter中使用GirdView表示网格状的布局,类似日常办公中使用的Excel…

hashCode 如何计算?这一篇就够了!

介绍 hashCode 中文‘散列码’,存在的意义是加快查找速率,可以在常数时间内进行寻址操作。 存在意义 它被定义在 Object 中,而 Object 类是一切类的父类,所以所有的方法都具有这个方法。 Java 中 hashCode 计算方式如下&#x…

C2. Exam in BerSU (hard version)(思维 + 小数据范围)

Problem - C2 - Codeforces 简单版本和困难版本之间的唯一区别是约束。 如果你用Python写一个解决方案,那么最好用PyPy发送,以加快执行时间。 贝兰德州立大学的一场会议已经开始。许多学生正在参加考试。 波利格拉夫维奇要对N个学生进行考试。学生们将…

工业树莓派远程I/O控制套装—更高效、更灵活、更便捷

一、背景 在完整的生产过程中,许多传感器设备和执行设备不完全安装在同一位置,大多分散部署在各个生产环节中。如果采用本地控制的方式,就需要用到多个控制器,但是成本较高,且不利于管理,所以最理想的解决…

2.redis-持久化

01-Redis持久化 概述 Redis数据存储在缓存中,为了防止数据的意外丢失,确保数据安全性。所以,就有了redis持久化。 分类 RDB: Redis默认的持久化策略, 直接存储数据 AOF: 存储数据的操作过程. 02-RDB持久化之save指令 配置说明 # 设置rdb…