基于JSP实现的音乐队管理系统
1 系统需求分析
1.1 业务场景
某个数据库记录乐队、乐队成员和歌迷的信息:每个乐队包括名称、成员、一个队长;所有成员包括名字、性别、分工等,每个成员有加入乐队的时间,(如果中途离开)有离开乐队的时间;每个歌迷包括姓名、性别、喜欢的乐队、喜欢的成员等。
1.2 需求分析
乐队管理系统作为管理者对乐队及其歌迷资料进行管理的重要系统平台,要求运用该系统能够使管理者对乐队的档案管理管理更加合理化、规范化、系统化。为了设计一个更加完善的系统,本次课程设计我们首先借助E-R图、流程图等形式,完成了详细的可行性分析,并且对问题域和系统责任进行理解,对系统中的实体和它们之间的联系产生正确的认识。
系统的实体包括乐队、成员、歌迷,定义这些实体的属性,以及它们之间形成的乐队——成员,乐队——队长,歌迷——乐队,歌迷——成员几种联系,数据库的功能模块包括对数据库的查询和更新。考虑到数据库安全性对系统的操作必须有权限,所以用户类别要有所区分,系统管理员可以进行查询和更新操作,其他用户包括乐队成员、歌迷只可进行查询操作,用户的信息也由一个数据表记录,包括用户名和密码。
2 系统设计
2.1 用户类别
考虑到数据库安全性对系统的操作必须有权限,用户要求进入乐队管理系统时,系统首先根据用户输入端用户标识进行身份鉴定,只有合法的用户才准进入系统;对已进入的用户,DBMS还要进行存取控制,只允许用户进行合法操作。
并且用户类别要有所区分,不同的用户有不同的权限,所有使用数据库的用户必须通过用户名密码的验证登陆后才可进行数据库操作。本次设计考虑以下两类用户:①系统管理员登陆后可以进行查询、删除、修改乐队、成员、歌迷信息的操作;②其他用户(乐队成员、歌迷)登录后可以进行查询乐队、成员、歌迷信息操作。
2.2 系统模块
2.3 流程图
3 数据库设计
3.1 概念结构设计(E-R图)
3.2 逻辑结构设计(关系数据库设计)
把上一步的E-R图转换为如下关系模型:
-
乐队(乐队ID,乐队名)
-
成员(成员ID,乐队ID,成员姓名,成员性别,成员分工,入队时间,离队时间)
-
乐队队长(乐队ID,队长ID)
-
歌迷(歌迷ID,歌迷姓名,歌迷性别)
-
乐队歌迷(歌迷ID,乐队ID)
-
成员歌迷(歌迷ID,成员ID)
4 数据库实施和管理说明
-
数据库安全性 :用户要求进入乐队管理系统时,系统首先根据用户输入端用户标识进行身份鉴定,只有合法的用户才准进入系统;对已进入的用户,DBMS还要进行存取控制,只允许用户进行合法操作。考虑到数据库安全性对系统的操作必须有权限,所以用户类别要有所区分,乐队系统管理员可以进行查询和更新操作,其他用户包括乐队成员、歌迷只可进行查询操作,用户的信息也由一个数据表记录,包括用户名和密码。
-
数据库完整性 :在定义实体或者关系的时候,保证实体完整性、参照完整性、用户自定义的完整性。只有在“乐队”表中添加了元组后才可以“乐队队长”或者“乐队歌迷”表中添加相应的元组,相当于只能取被参照关系中已经存在的主码值。
5 系统测试报告
5.1 数据库建表以及初始化
5.2 主页以及用户类别选择
5.3 普通用户操作界面
5.4 管理员操作界面
6 关键源代码注释分析
6.1 数据库生成代码
乐队(乐队ID,乐队名)
sql
/*band (band_id(pk), band_name)*/
CREATE TABLE band (
band_id CHAR(10) PRIMARY KEY,
band_name CHAR(40) NOT NULL
);
成员(成员ID,乐队ID,成员姓名,成员性别,成员分工,入队时间,离队时间)
sql
/*member (member_id(pk), member_name, band_id(fk), member_sex, member_div, member_indate, member_outdate)*/
CREATE TABLE member (
member_id CHAR(10) PRIMARY KEY,
member_name CHAR(20) NOT NULL,
band_id CHAR(10) NOT NULL,
member_sex CHAR(2) CHECK(member_sex IN('男', '女')),
member_div CHAR(30),
member_indate DATE NOT NULL,
member_outdate DATE,
FOREIGN KEY(band_id) REFERENCES band(band_id)
);
乐队队长(乐队ID,队长ID)
sql
/*header (band_id(pk, fk), header_id(fk))*/
CREATE TABLE header (
band_id CHAR(10) PRIMARY KEY,
header_id CHAR(10) NOT NULL,
FOREIGN KEY(band_id) REFERENCES band(band_id),
FOREIGN KEY(header_id) REFERENCES member(member_id)
);
歌迷(歌迷ID,歌迷姓名,歌迷性别)
sql
/*fan (fan_id(pk), fan_name, fan_sex)*/
CREATE TABLE fan (
fan_id CHAR(10) PRIMARY KEY,
fan_name CHAR(20) NOT NULL,
fan_sex CHAR(2) CHECK(fan_sex IN('男', '女'))
);
乐队歌迷(歌迷ID,乐队ID)
/*fanBand (fan_id(pk, fk), fan_band(fk))*/
CREATE TABLE fanBand (
fan_id CHAR(10) PRIMARY KEY,
fan_band CHAR(10) NOT NULL,
FOREIGN KEY(fan_id) REFERENCES fan(fan_id),
FOREIGN KEY(fan_band) REFERENCES band(band_id)
);
成员歌迷(歌迷ID,成员ID)
/*fanMember (fan_id(pk, fk), fan_member(fk))*/
CREATE TABLE fanMember (
fan_id CHAR(10) PRIMARY KEY,
fan_member CHAR(10) NOT NULL,
FOREIGN KEY(fan_id) REFERENCES fan(fan_id),
FOREIGN KEY(fan_member) REFERENCES member(member_id)
);
6.2 数据库操作代码
数据库连接代码
java
/** 连接数据库参数 **/
String driverName = "com.mysql.jdbc.Driver"; //驱动名称
String DBUser = "root"; //mysql用户名
String DBPasswd = "123456"; //mysql密码
String DBName = "cwband"; //数据库名
查询操作
```sql / 乐队信息 / String sql=''SELECT fan.fan_id,fan_name,fan_band,band_name FROM fan,fanBand,band WHERE fan.fan_id=fanBand.fan_id AND fanBand.fan_band=band.band_id'';
/ 歌迷信息 / String sql=''SELECT fan.fan_id,fan_name,fan_member,member_name FROM fan,fanMember,member WHERE fan.fan_id=fanMember.fan_id AND fanMember.fan_member=member.member_id''; ```
更新操作
```java / 增加乐队 / String insert_sql = "insert into band values('" + bandid + "','" + bandname + "')"; String query_sql = "select * from band";
/
增加成员
/
String insert_sql = "insert into member values('" + memberid + "','" + membername + "','" + bandid + "','" + membersex + "','" + memberdiv + "','" + indate + "','" + outdate + "')";
String query_sql = "select * from member";
```
7 总结和展望
物联网数据库技术课程设计是一次对课堂所学知识的灵活应用,是理论知识与实践的相结合。经过了两周的课程设计,本系统基本达到了当初的设计要求,设计上也基本合理。我们不仅对数据库系统的认识更加深入,同时也掌握了面向实体的系统分析的基本方法,对JAVAWEB也有了新的认识,也知道了要有坚持不懈,不惧困难的精神,才能取得成功。一个简单的系统,每一个细节都需要在实践中去挖掘并进行进一步的修改完善。本次课设让我们受益匪浅,在分析问题以及解决问题等方面的能力有所提高,也是一次很好的同学之间交流合作的机会。数据库技术的用途很广,还有很多值得我们学习,希望今后能有更多这样的机会。
改进部分:在和老师的交流后根据老师提出的建议,我们再次仔细分析了系统需求和逻辑关系,改进思想为“队长”作为属性加入到“乐队”表中,数据库的操作尽量在一个表或尽可能少的表中操作,节省资源。
参考文献
- 利用JSP技术开发基于WEB的人事工资管理系统(大连铁道学院·杜欣然)
- 基于J2EE的云师大艺术系音乐教学系统设计与实现(电子科技大学·罗国玲)
- 基于MVC模式的物流信息管理系统设计与开发(电子科技大学·程泳)
- 基于PHP的在线音乐网站的设计与实现(武汉理工大学·陈君)
- 基于MVC模式的物流信息管理系统设计与开发(电子科技大学·程泳)
- 基于JSP技术动态教学管理系统设计与实现(电子科技大学·董豪)
- 综合管理信息系统的设计与实现(东南大学·胡杰)
- 歌曲数字化教学辅助系统的设计与实现(安徽大学·李银萍)
- 歌曲数字化教学辅助系统的设计与实现(安徽大学·李银萍)
- 基于PHP的音乐教学辅助平台的分析与设计(长春工业大学·镡悦源)
- 基于JSP技术的毕业生信息管理系统的设计与实现(吉林大学·孙佳帝)
- 综合管理信息系统的设计与实现(东南大学·胡杰)
- 基于J2EE的云师大艺术系音乐教学系统设计与实现(电子科技大学·罗国玲)
- 基于J2EE的学生信息管理系统(电子科技大学·钟海琴)
- 企事业单位短信平台管理系统的设计(电子科技大学·田泽)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设项目助手 ,原文地址:https://bishedaima.com/yuanma/35404.html