用dw做红米网站/总裁班课程培训
实验14:20211030 1+X 中级实操考试(id:2498)
- 一、项目背景说明
- 二、表结构
- 三、步骤
- 【5 分】步骤 1:项目准备
- 【5 分】步骤 2:完成实体类 Member
- 【10 分】步骤 3:完成实体类 Goods
- 【10 分】步骤 4:完成工具类 DateUtil的convertFromStringToDate方法
- 【10 分】步骤 5:完成工具类 DateUtil的convertFromDateToString 方法
- 【10 分】步骤 6:完成 GoodsDaoImpl 的 queryExpensiveGoods 方法
- 【10 分】步骤 7:完成 GoodsDaoImpl 的 querySum 方法
- 【10 分】步骤 8:完成 MemberDaoImpl 的 updatePwd 方法
- 【10 分】步骤 9:完成 MemberDaoImpl 的 updateRank 方法
- 【10 分】步骤 10:完成 OrderDaoImpl 的 queryNum 方法
- 【10 分】步骤 11:完成 OrderDaoImpl 的 queryMax 方法
一、项目背景说明
超市管理系统是超市、商店等单位使用的一套系统,本项目使用控制台来模拟其部分功能。
- 在超市管理系统中涉及到的实体类有:会员类 Member、商品类 Goods、订单类 Order。
- 对应的数据表有:会员表 member、商品表 goods、订单表 order。
- 功能主要涉及到:会员管理、查看商品信息、查看订单信息、商品销售额汇总、个人积分等。
二、表结构
- member 表
该表的含义是 会员,共有 4 个字段,详情如下:
表字段 | 数据库数据类型 | 含义 | 备注 |
---|---|---|---|
name | VARCHAR | 会员姓名 | 主键 |
pwd | VARCHAR | 会员密码 | |
score | FLOAT | 会员积分 | |
rank | INT | 会员等级 |
- goods 表
该表的含义是 商品,共有 3 个字段,详情如下:
表字段 | 数据库数据类型 | 备注 | 备注 |
---|---|---|---|
name | VARCHAR | 商品名称 | 主键 |
price | INT | 商品单价 | |
num | INT | 商品数量 |
- order 表
该表的含义是 订单,共有 5 个字段,详情如下:
表字段 | 数据库数据类型 | 含义 | 备注 |
---|---|---|---|
id | INT | 订单号 | |
mname | VARCHAR | 会员姓名 | 外键->会员表(name) |
gname | VARCHAR | 商品名称 | 外键->商品表(name) |
num | INT | 商品数量 | |
price | FLOAT | 商品单价 |
三、步骤
【5 分】步骤 1:项目准备
复制粘贴、略。
【5 分】步骤 2:完成实体类 Member
题目:
首先我们要设计一系列的实体类,它们是 org.lanqiao.bean.Member、org.lanqiao.bean.Goods、org.lanqiao.bean.Order, 现在 Member 类需要你来完善。
org.lanqiao.bean.Member是一个实体类,有四个属性,与数据库表 member 及其字段一一对应,对应关系如下。
【数据库表 member 的字段及其与实体类 Member 的属性的对应关系】
序号 | 类属性 | 表字段 | 数据库数据类型 | 备注 |
---|---|---|---|---|
1 | name | name | VARCHAR | 主键 |
2 | pwd | pwd | VARCHAR | |
3 | score | score | FLOAT | |
4 | rank | rank | INT |
请根据注释要求,补全空缺的代码。
package org.lanqiao.bean;public class Member {private String name;private String pwd;private float score;private int rank;//已经提供Member类的属性,补充完成该类的有参(四个参数)及无参构造方法}
答案:
public Member(){}public Member(String name, String pwd, float score, int rank){this.setName(name);this.setPwd(pwd);this.setScore(score);this.setRank(rank);
}
【10 分】步骤 3:完成实体类 Goods
题目:
现在来完善 Goods 商品类。
org.lanqiao.bean.Goods是一个实体类,有三个属性,与数据库表 goods 及其字段一一对应,对应关系如下。
【数据库表 goods 的字段及其与实体类 Goods 的属性的对应关系】
序号 | 类属性 | 表字段 | 数据库数据类型 | 备注 |
---|---|---|---|---|
1 | name | name | VARCHAR | 主键 |
2 | price | price | FLOAT | |
3 | num | num | INT |
请根据注释要求,补全空缺的代码。
package org.lanqiao.bean;public class Goods {//请修改该方法,并且在赋值时,商品数量不能超过100public void setNum(int num) {this.num = num;}}
答案:
public void setNum(int num) {if (num > 100) return;this.num = num;
}
【10 分】步骤 4:完成工具类 DateUtil的convertFromStringToDate方法
题目:
在项目中我们需要用到日期和字符串类型的相互转换,我们把这些功能封装到 org.lanqiao.util.DateUtil 里面,请根据注释要求,补全 convertFromStringToDate
/*** 使用全局变量: sdf,将字符串转换为java.util.Date类型并返回* @param stringDate* 注意,不能声明任何形式的异常抛出,否则测试用例无法通过* @return*/public static Date convertFromStringToDate(String stringDate) {// 补全代码:Date date = null;return date;}
答案:
public static Date convertFromStringToDate(String stringDate) {// 补全代码:Date date = null;try {date = sdf.parse(stringDate);} catch (Exception e) {// TODO: handle exception}return date;
}
【10 分】步骤 5:完成工具类 DateUtil的convertFromDateToString 方法
题目:
请根据注释要求,补全org.lanqiao.util.DateUtil 的 convertFromDateToString 方法。
/*** 使用全局变量: sdf,将日期转换成字符串* @param date 需要被转换的日期* @return 转换之后的字符串形式的日期*/public static String convertFromDateToString(Date date) {// 补全或替换代码return null;}
答案:
public static String convertFromDateToString(Date date) {// 补全或替换代码return sdf.format(date);
}
【10 分】步骤 6:完成 GoodsDaoImpl 的 queryExpensiveGoods 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关商品的操作我们封装到 org.lanqiao.daoimpl.GoodsDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 queryExpensiveGoods 方法。
/*** 查询所有商品中价钱最贵的商品名称* @return 返回商品名称*/public String queryExpensiveGoods() {// 请补全sql语句String sql = "###";Goods g = goodsUtil.getOne(sql, Goods.class);return g.getName();
}
答案:
public String queryExpensiveGoods() {// 请补全sql语句String sql = "select name from goods where price = (select max(price) from goods)";Goods g = goodsUtil.getOne(sql, Goods.class);return g.getName();
}
【10 分】步骤 7:完成 GoodsDaoImpl 的 querySum 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关商品的操作我们封装到 org.lanqiao.daoimpl.GoodsDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 querySum 方法。
/*** 查询所有商品的总价值金额* @return 返回所有商品的总价值金额*/public double querySum() {String sql = "select * from goods";double sum = 0;List<Goods> list = goodsUtil.getList(sql, Goods.class);for (Goods goods : list) {// 请补全代码}return sum;}
}
答案:
public double querySum() {String sql = "select * from goods";double sum = 0;List<Goods> list = goodsUtil.getList(sql, Goods.class);for (Goods goods : list) {// 请补全代码sum += goods.getNum() * goods.getPrice();}return sum;
}
【10 分】步骤 8:完成 MemberDaoImpl 的 updatePwd 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关会员的操作我们封装到 org.lanqiao.daoimpl.MemberDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 updatePwd 方法。
/*** 给每个会员的密码加密* 加密规则:密码的逆序。* 如:原来的密码是123,加密后为321。*/public void updatePwd(){// 请补全sql语句String sql = "###";memberUtil.update(sql); }
答案:
public void updatePwd(){// 请补全sql语句String sql = "update member set pwd = reverse(pwd)";memberUtil.update(sql);
}
【10 分】步骤 9:完成 MemberDaoImpl 的 updateRank 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关会员的操作我们封装到 org.lanqiao.daoimpl.MemberDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 updateRank 方法。
/*** 根据会员的积分来更新会员的等级* 0<=score<100分,等级为0* 100<=score<200分,等级为1* 200<=score<300分,等级为2* 300<=score<400分,等级为3* 400<=score<500分,等级为4* 500<=score分,等级为5* @return*/public void updateRank() {// 请补全sql语句String sql = "###";memberUtil.update(sql); }
答案:
踩坑——字段名上的标点符号 ` 必须加上,否则报错。
public void updateRank() {// 请补全sql语句String sql = "update member set `rank` = "+ "(case "+ "when score between 0 and 99 then 0 "+ "when score between 100 and 199 then 1 "+ "when score between 200 and 299 then 2 "+ "when score between 300 and 399 then 3 "+ "when score between 400 and 499 then 4 "+ "when score >= 500 then 5 "+"end)";memberUtil.update(sql);
}
【10 分】步骤 10:完成 OrderDaoImpl 的 queryNum 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关订单的操作我们封装到 org.lanqiao.daoimpl.OrderDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 queryNum 方法。
/*** 查询一共有多少笔订单* @return 返回订单数量*/
public int queryNum() {String sql = "select * from `order`;";List<Order> o = orderUtil.getList(sql, Order.class); Set<Integer> s = new HashSet<Integer>();for (Order order : o) {// 请补全语句}return s.size();
}
答案:
public int queryNum() {String sql = "select * from `order`;";List<Order> o = orderUtil.getList(sql, Order.class); Set<Integer> s = new HashSet<Integer>();for (Order order : o) {// 请补全语句s.add(order.getId());}return s.size();
}
【10 分】步骤 11:完成 OrderDaoImpl 的 queryMax 方法
题目:
数据存入数据库之后,我们需要进行相关的 CRUD,进行数据的处理和展示,数据库中有关订单的操作我们封装到 org.lanqiao.daoimpl.OrderDaoImpl 里面,请帮忙完成。
请根据注释要求,补全 queryMax 方法。
/*** 查询消费金额最多的人* @return 返回会员名称*/
public String queryMax() {// 请补全sql语句String sql = "###";Order o = orderUtil.getOne(sql, Order.class); return o.getMname();
}
答案:
踩坑——字段名上的标点符号 ` 必须加上,否则报错。
public String queryMax() {// 请补全sql语句String sql = "select * from `order` order by (num*price) desc limit 1";Order o = orderUtil.getOne(sql, Order.class); return o.getMname();
}
相关文章:

实验14:20211030 1+X 中级实操考试(id:2498)
实验14:20211030 1X 中级实操考试(id:2498) 一、项目背景说明二、表结构三、步骤【5 分】步骤 1:项目准备【5 分】步骤 2:完成实体类 Member【10 分】步骤 3:完成实体类 Goods【10 分】步骤 4&a…...

(字符串 ) 剑指 Offer 58 - II. 左旋转字符串 ——【Leetcode每日一题】
❓剑指 Offer 58 - II. 左旋转字符串 难度:简单 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的…...

EPICS编程
提纲 1) 为什么在EPICS上编程 2)构建系统特性:假设基本理解Unix Make 3)在libCom中可用的工具 1) 为什么在EPICS上编程 1、社区标准:EPICS合作者知道和明白EPICS结构 2、在很多操作系统之间代码移值性…...

17:00面试,还没10分钟就出来了,问的实在是太...
从外包出来,没想到死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推我去…...

docker都有那些工具,及工具面试题
docker介绍 Docker 是一种开源的容器化平台,可以帮助开发者将应用程序和依赖项打包到轻量级的容器中,然后部署到任何基于 Linux 的操作系统中。使用 Docker 可以大大简化开发、部署和管理应用程序的过程,使其更加快速、灵活和可靠。 Docker…...

LAMP网站应用架构
LAMP 一、LAMP概述1、各组件的主要作用2、构建LAMP各组件的安装顺序 二、编译安装Apache httpd服务1、关闭防火墙,将安装Apache所需软件包传到/opt目录下2.安装环境依赖包3.配置软件模块4.编译及安装5.优化配置文件路径,并把httpd服务的可执行程序文件放…...

C++虚函数virtual(动态多态)(纯虚函数)
怎么判断函数是虚函数还是普通函数? 用VS,在调用对象的方法的地方。。按altg ,如果他跳转到正确的函数,那也就意味着他是编译时可以确定的。。。 但是如果他跳到了这个调用对象的基类的函数,那么也就意味着他是一个运行…...

【Java 接口】接口(Interface)的定义,implements关键字,接口实现方法案例
博主:_LJaXi Or 東方幻想郷 专栏: Java | 从入门到入坟 专属:六月一日 | 儿童节 Java 接口 接口简介 🎃接口的定义 🧧接口实现类名定义 🎁接口实现类小案例 🎈后话 🎰 接口简介 &…...

解决Vmware上的kali找不到virtualbox上的靶机的问题
解决kali找不到靶场ip问题的完整方法 1.配置靶机2.配置kali的虚拟网络3.配置kali中的eth0网络 1.配置靶机 靶机部署在Virtualbox上对其进行网络配置,选择连接方式为仅主机(Host-Only)网络。 2.配置kali的虚拟网络 在编辑中选择虚拟网络配…...

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在
文章目录 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 2.查看SSL配置 二、查看证书是否存在 前言 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 在Linux终端中…...

华为OD机试真题 Java 实现【表示数字】【牛客练习题】
一、题目描述 将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。 数据范围:字符串长度满足1≤n≤100 。 二、输入描述 输入一个字符串。 三、输出描述 字符中所有出现的数字前后加上符号“*”,其他字符保持不变。 四、解题思路…...

使用Python进行接口性能测试:从入门到高级
前言: 在今天的网络世界中,接口性能测试越来越重要。良好的接口性能可以确保我们的应用程序可以在各种网络条件下,保持流畅、稳定和高效。Python,作为一种广泛使用的编程语言,为进行接口性能测试提供了强大而灵活的工…...

sed编辑器
文章目录 一.sed命令基础1.sed概念2.sed的工作流程3.命令格式4.sed命令的常用选项5.sed命令的操作符 二.sed命令的打印功能1.打印文本文件内容1.1 格式1.2 默认打印方式 2.指定行打印2.1 指定行号打印2.2 只打印文件的行数2.3 即打印文件的行号也打印文件的内容2.4 即显示行也显…...

深入理解深度学习——正则化(Regularization):稀疏表示
分类目录:《深入理解深度学习》总目录 另一种策略是惩罚神经网络中的激活单元,稀疏化激活单元。这种策略间接地对模型参数施加了复杂惩罚。我们已经在《深入理解深度学习——正则化(Regularization):参数范数惩罚》中讨…...

【Android】分别用JAVA和Kotlin实现横向扫描的动画效果
Android 横向扫描的动画可以通过使用 ViewPropertyAnimator 和 ObjectAnimator 来实现。 首先,在 XML 布局文件中创建一个 ImageView,并设置其宽度为 0dp,高度为 match_parent。然后,创建一个横向的渐变色 Drawable,并…...

长尾词挖掘,如何选择精准的长尾词优化?
长尾词的挖掘也是一门大学问,它存在多种不同的方法。最常用的方法是把关键词直接放搜索引擎的搜索框搜索和使用长尾词挖掘工具这两种。 以运动水壶为例。 关键词直接放搜索引擎的搜索框搜索,结果如下: 使用长尾词挖掘工具,…...

Python相关环境变量配置和模拟手机app登录
【java环境变量配置】 接着,打开系统->高级系统设置->环境变量。新建一个JAVA_HOME C:\Program Files\Java\jdk1.8.0_201(这里是你的安装路径,最好复制粘贴) 然后在Path下添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 然后…...

c++ 11标准模板(STL) std::map(九)
定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…...

深入探索chatGPT插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder
1. 引言 在这个日益依赖技术的世界中,AI插件已经成为了我们日常生活和工作的重要组成部分。在这篇博客中,我们将深入探索三个强大的AI插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder,了解他们的功能&…...

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路
一、题目描述 特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。 车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位&a…...

第二章:MySQL环境搭建
第二章:MySQL环境搭建 2.1:MySQL的下载、安装、配置 MySQL的四大版本 MySQL Community Server社区版本:开源免费、自由下载,但不提供官方技术支持,适用于大多数普通用户。MySQL Enterprise Edition企业版本࿱…...

生产环境之负载均衡LVS+keepalived方案(2)_LVS介绍
LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,linux内核2.6.X之后的版本默认已集成了LVS模块(内核模块名为:ipvs),实现了基于传输层的请求负载均衡调度方案,LVS支持的工作模…...

【parsel】------- PYTHON爬虫基础4
parsel 这个库可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。 内容目录 from parsel import Selector提取节点提取 class 包含 item-0 的节点 提取文本获取提取到的所有 li…...

MySQL数据库从入门到精通学习第8天(表数据的查询)
表数据的查询 基本查询语句单表查询聚合函数查询多表连接查询子查询合并查询结果定义表和字段的别名使用正则表达式查询 基本查询语句 SELECT 语句非常的强大,是最常用的查询语句。他具有一个固定的格式,如下: SELECT 查询的内容 FROM 数据…...

什么是IPAM?如何使用IPAM来管理IP地址和DHCP?
在计算机网络中,IPAM(IP Address Management)是一种用于管理IP地址和DHCP(Dynamic Host Configuration Protocol)的工具或系统。IPAM旨在简化和集中管理IP地址分配、子网划分和DHCP配置等任务。本文将详细介绍IPAM的概…...

PCIE学习
目录 一、PCIE结构1、层次结构2、数据包TLPDLLP PCIE寄存器配置1、基址寄存器的作用2、基址寄存器的位置 三、PCIE读取数据 一、PCIE结构 1、层次结构 绝大多数的总线或者接口,都是采用分层实现的。PCIe也不例外,它的层次结构如下: PCIe定…...

商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型
AGI时代的到来,市场风云变幻,世界正在经历着一场技术革命的颠覆性洗礼。 2023年6月6日6时,数说故事正式对外发布数说故事“SocialGPT”,国内首个专注Social领域的商业大模型。数说故事“SocialGPT”大家昵称它为“社牛”大模型&a…...

STM32HAL库RS485-ModBus协议控制伺服电机
STM32HAL库RS485-ModBus协议控制伺服电机 一个月前,接手了一个学长的毕设小车,小车采用rs485通信的modbus协议驱动轮毂电机,与往常我学习的pwm控制电机方法大相径庭,在这里以这篇博客记录下该学习过程。 小车主要架构 电机型号 …...

【医学图像】图像分割系列.3 (uncertainty)
介绍几篇使用不确定性引导的医学图像分割论文:UA-MT(MICCAI2019),SSL4MIS(MICCAI2021),UG-MCL(AIIM2022). Uncertainty-aware Self-ensembling Model for Semi-supervise…...

Java有线程安全的set吗?
在Java中,有线程安全的Set实现。一个常用的线程安全的Set实现是ConcurrentSkipListSet。ConcurrentSkipListSet是一个有序的集合,基于跳表(SkipList)的数据结构实现。它提供了线程安全的操作,并且具有较好的性能。 接下来笔者用一段简单的Jav…...