【深圳大学数据库系统】实验4 数据库设计(基于springboot+web三件套+mysql ...

打印 上一主题 下一主题

主题 1017|帖子 1017|积分 3051

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目录
一、实验目标:
二、实验要求:
三、实验装备:
四、实验内容
一、数据库设计
二、MySQL实现
(一)按计划费用评级的慈善机构
(二)按请求类别分类的捐助者
(三)慈善机构的捐助者
(四)捐赠者捐赠频率
(五)匹配礼物
(六)添加/更新 慈善机构/捐赠者
(七)实现触发器+日志界面
(八)异常显示消息提示
(九)实现捐赠&记录功能
(十)整合页面
五.题目分析
六.实验心得

一、实验目标:

1、相识数据库设计;
2、掌握存储过程、函数、触发器的实现。


二、实验要求:

1、安装相关软件并欣赏软件自带的资助文件和功能菜单,
2、掌握PHP构建网页以及连接数据库的方法。
3、掌握phpmyadmin创建数据库与数据表的方法;
4、相识mysql的命令以及与php衔接的语句
5、掌握存储过程、函数的实现
6、掌握触发器的实现;


三、实验装备:

计算机、数据库管理系统如php,mysql 等软件。


四、实验内容

按要求完成individual project的数据库设计,MySQL Implementation 和Interface,可以按照自己的思绪拓展功能。

本系统接纳springboot+mybatis+web三件套(htmlcssjs)开辟实现。

一、数据库设计

1.新建数据库,命名为charity_db,再新建管理员表,然后插入两条数据。




2.新建慈善机构表agency_tb后插入数据。



3.新建捐赠者donor_tb表,并插入数据。




4.新建捐赠gift_tb表并插入数据。




5.新建user_tb表,并插入数据。




6.新建info_tb表,并插入数据




7.新建log_tb表。



8.实现登录接口,会根据登录账号为管理员或者用户的举行跳转不同的页面。





9.实现登陆前端界面,以及响应。









二、MySQL实现

(一)按计划费用评级的慈善机构

1.实现sql语句。




2.实现后端接口。首先实现AgencyController类。



3实现AgencyMapper代理层。



4.实现业务层接口和实现类。




5.测试接口,发现成功返回数据。



6.实现agencyOrder.html。




7.启动后端服务器,访问页面如下图所示。




(二)按请求类别分类的捐助者

1. 创建按请求类别分列的捐助者查询。



2. 调用按请求类别分列的捐助者查询。



3.发现可以正确输出结果。



4.建立实体类Donor。



5.建立DonorController类。



6.建立DonorMapper接口。



7.建立DonorService接口



8.实现业务层类DonorServiceImpl 。



9.实现前端页面DonorByCategory.html。




10.启动服务器,打开页面,如下图所示。



11.输入类别,如下图所示,若不存在类别则会提示。






(三)慈善机构的捐助者

1.分析sql语句,如下图所示。




2检察gift_tb表和donor_tb表和agency_tb表,可知结果正确。





3.实现实体类CharityDonor。



4.实现控制层方法。



5.实当代理层方法。



6.实现业务层方法。



7.测试接口,发现成功返回数据。



8.实现前端页面DonorByCharity.html。




9.启动服务器,打开页面。



10.输入慈善机构ID举行查询,若不存在会输出提示。





(四)捐赠者捐赠频率

1.实现sql语句,如下图所示。




2.检察donor_tb表和gift_tb表,可知查询结果正确。




3.实现实体类DonationFrequency。



4.实现controller层方法。



5.实现业务层方法。



6.实现数据层方法。



7.测试接口,发现成功获取数据。



8.实现前端界面donorFrequency.html。




9.启动服务器,界面如图所示。



(五)匹配礼物

1.标题是:创建一个名为“匹配礼物”的查询,显示慈善机构名称、日期和金额,然后计算匹配金额和捐赠总额。 回想一下,一位匿名捐助者乐意为“饥饿救济食品”慈善机构每捐赠 1 美元,捐出 50 美分。

我的明白是,先看gift_tb表。对于每一笔捐赠记录,捐款金额为amount,有某个好心人乐意再捐出0.5倍的amount,那么总金额就是1.5倍的amount,当然,因为标题叫“匹配礼物”,因此只对特定慈善机构举行善意的捐助,至于是哪个机构就要看用户输入了。



2.实现sql语句




3.实现实体类MatchGift。



4.实现控制层方法。



5.实现数据层方法。



6.实现业务层方法。



7.测试接口,成功得到数据。



8.实现前端页面MatchGift.html。




9.启动服务器,运行界面如下图所示。






(六)添加/更新慈善机构/捐赠者

1.这个分为两个部分,一个是管理慈善机构,一个是管理捐赠者。依据题意是,输入数据,假如数据(捐赠者或慈善机构)不存在,则将其插入表中,否则仅更新。


2.首先实现实体类AgencyAll和DonorAll。



3.实现两边的控制层方法。




4.实现两边的数据层方法。




5.实现两边的业务层方法。




6.测试管理接口,发现返回数据成功。




7.观察agency_tb,刷新后数据确实增加了。




8.观察donor_tb,刷新后数据确实增加了。



9.实现前端界面agencyChange.html。




10.启动服务器,打开网页如下图所示。






11.刷新表,发现操纵成功。





(七)实现触发器+日志界面

1.实现触发器,以插入、更新和删除 agency_tb 表为例。



2.删除agecy_tb一条数据后观察log_tb表,发现log_tb表记录成功,其它表同理。




3.检察所有触发器,如下图所示。



4.确定查询的sql语句。



5.实现实体类OperationLog。



6.实现控制层方法。



7.实现数据层方法。



8.实现业务层方法。



9.测试接口,获取数据成功。



10.实现前端界面log.html。




11.启动服务器,打开网页,如图所示。




(八)异常显示消息提示

1.登录失败时提示。



2. 按请求类别分类的捐助者,查询失败时提示。



3. 慈善机构的捐助者,查询失败时提示。



4. 匹配礼物,失败时提示。




(九)实现捐赠&记录功能

1.思量到用户有在捐赠的需求,因此再添加一个捐赠功能,用户通过输入捐赠者id和慈善机构id和金额即可成功举行捐赠,然后显现自己的所有捐款记录。

sql语句如下,先将gift_id设为自增,且幅度为1,然后插入数据:
  1. alter table gift_tb
  2.     modify gift_id int auto_increment;
  3. alter table gift_tb
  4.     auto_increment = 1;
  5. INSERT INTO gift_tb (donor_id, agency_id, donation_date, amount)
  6. VALUES (4, 1006,  NOW(),10000);
复制代码


2.检察表格发现插入成功。



3. 显现特定人的所有捐款记录,sql语句如下:




4.实现实体类ToGift吸取数据。



5.实现实体类Gift返回数据。



6.实现控制层方法。



7.实现数据层方法。



8.实现业务层方法。



9.测试接口,成功实现功能。




10.实现前端界面toGift.html。





11.启动服务器,打开页面如下所示。




(十)整合页面

1.现在有的页面包括:登录、按计划费用评级的慈善机构、按请求类别分类的捐助者、慈善机构的捐助者、捐赠者捐赠频率、匹配礼物、添加/更新慈善机构、添加/更新捐赠者、操纵日志、捐赠&记录。

使用慈善管理系统的人有两种身份,一个是管理员、一个是平凡用户。管理员是可以看到所有的页面的,但是平凡用户能看到的页面只有如下:登录、按计划费用评级的慈善机构、匹配礼物、捐赠&记录。

因此,必要根据登录者的身份来决定其跳转的主页。然后主页再对应上各自能跳转的界面的按钮,以及退出登录的功能。


2.实现管理员主页managerHome.html。





3.实现平凡用户主页userHome.html。





4.在登录时,存储使用者的账号和身份,并根据身份跳转到不同的主页。



5.更新各个页面返回主页按钮的逻辑,会根据使用者身份跳转到不同的主页。




五.题目分析

1.gift_tb插入数据失败.


分析:表的字段绑定了外键,插入的数据中,这几个的数据一定要存在,如下更改后插入成功。



2.接口测试发生错误。



分析:对应关系发生错误,因为只有一个对象,但是查到的数据有32条。按如下修改即可。




六.实验心得

通过此次试验,学会了以下几个紧张的方面:
数据库设计与操纵: 通过创建管理员表、慈善机构表、捐赠者表等,以及执行插入、更新、查询等数据库操纵,熟悉了数据库的设计和基本操纵。

Spring Boot 的使用: 在实现登录功能的过程中,使用了 Spring Boot 框架,学会了如何创建 RESTful 接口、处理请求和返反响应,以及如何与数据库交互。

MyBatis 框架: 通过使用 MyBatis 框架,相识了如何举行数据库的恒久层操纵,包括使用注解举行 SQL 查询、插入和更新。

前端页面设计: 在实现前端页面时,学会了如何使用 HTML 和 CSS 举行页面结构和样式设计,以及如何通过 JavaScript 处理用户交互。

身份验证与权限管理: 在实现管理员和平凡用户身份的区分以及相应权限管理方面,掌握了一些基本的前后端交互和权限判定的方法。

错误处理与日志记录: 学会了如那里理可能发生的错误,包括在前端举行用户友爱的提示,以及在后端通过日志记录举行题目追踪。

实际题目办理: 通过办理,进步了在实际开辟中办理题目标能力,包括数据库表设计、SQL 查询语句的编写、前端页面的设计和调试等方面。

(by 归忆)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表