# 基于JSP实现的音乐队管理系统
# 1 系统需求分析
## 1.1 业务场景
某个数据库记录乐队、乐队成员和歌迷的信息:每个乐队包括名称、成员、一个队长;所有成员包括名字、性别、分工等,每个成员有加入乐队的时间,(如果中途离开)有离开乐队的时间;每个歌迷包括姓名、性别、喜欢的乐队、喜欢的成员等。
## 1.2 需求分析
乐队管理系统作为管理者对乐队及其歌迷资料进行管理的重要系统平台,要求运用该系统能够使管理者对乐队的档案管理管理更加合理化、规范化、系统化。为了设计一个更加完善的系统,本次课程设计我们首先借助E-R图、流程图等形式,完成了详细的可行性分析,并且对问题域和系统责任进行理解,对系统中的实体和它们之间的联系产生正确的认识。
系统的实体包括乐队、成员、歌迷,定义这些实体的属性,以及它们之间形成的乐队——成员,乐队——队长,歌迷——乐队,歌迷——成员几种联系,数据库的功能模块包括对数据库的查询和更新。考虑到数据库安全性对系统的操作必须有权限,所以用户类别要有所区分,系统管理员可以进行查询和更新操作,其他用户包括乐队成员、歌迷只可进行查询操作,用户的信息也由一个数据表记录,包括用户名和密码。
# 2 系统设计
## 2.1 用户类别
考虑到数据库安全性对系统的操作必须有权限,用户要求进入乐队管理系统时,系统首先根据用户输入端用户标识进行身份鉴定,只有合法的用户才准进入系统;对已进入的用户,DBMS还要进行存取控制,只允许用户进行合法操作。
并且用户类别要有所区分,不同的用户有不同的权限,所有使用数据库的用户必须通过用户名密码的验证登陆后才可进行数据库操作。本次设计考虑以下两类用户:①系统管理员登陆后可以进行查询、删除、修改乐队、成员、歌迷信息的操作;②其他用户(乐队成员、歌迷)登录后可以进行查询乐队、成员、歌迷信息操作。
## 2.2 系统模块
![](http://www.writebug.com/myres/static/uploads/2021/10/19/9244abb8c4871042d41301c7c8be462a.writebug)
## 2.3 流程图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/55a42a9ba702222aa8627ac909445c0b.writebug)
# 3 数据库设计
## 3.1 概念结构设计(E-R图)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/ceaca0d5b184306e2657851387237f40.writebug)
## 3.2 逻辑结构设计(关系数据库设计)
把上一步的E-R图转换为如下关系模型:
- 乐队(乐队ID,乐队名)
- 成员(成员ID,乐队ID,成员姓名,成员性别,成员分工,入队时间,离队时间)
- 乐队队长(乐队ID,队长ID)
- 歌迷(歌迷ID,歌迷姓名,歌迷性别)
- 乐队歌迷(歌迷ID,乐队ID)
- 成员歌迷(歌迷ID,成员ID)
# 4 数据库实施和管理说明
- **数据库安全性**:用户要求进入乐队管理系统时,系统首先根据用户输入端用户标识进行身份鉴定,只有合法的用户才准进入系统;对已进入的用户,DBMS还要进行存取控制,只允许用户进行合法操作。考虑到数据库安全性对系统的操作必须有权限,所以用户类别要有所区分,乐队系统管理员可以进行查询和更新操作,其他用户包括乐队成员、歌迷只可进行查询操作,用户的信息也由一个数据表记录,包括用户名和密码。
- **数据库完整性**:在定义实体或者关系的时候,保证实体完整性、参照完整性、用户自定义的完整性。只有在“乐队”表中添加了元组后才可以“乐队队长”或者“乐队歌迷”表中添加相应的元组,相当于只能取被参照关系中已经存在的主码值。
# 5 系统测试报告
## 5.1 数据库建表以及初始化
![](http://www.writebug.com/myres/static/uploads/2021/10/19/201cc6aeebb4fb0671ed92f4a70cc700.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/bec7a826633b479e51ecbf1d7eef61c8.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/040757cca038f95e6518719f2552318d.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/f6b6519ac4d07a44f43e63d18ada5e06.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/1c46bc484b2fc437e6f6c81f16310961.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/53b50146f52829c37567a0a753c4014a.writebug)
## 5.2 主页以及用户类别选择
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c2953c094b349377f3bd428b13677b1d.writebug)
## 5.3 普通用户操作界面
![](http://www.writebug.com/myres/static/uploads/2021/10/19/e9b60ca30ed7ceaba707b09ac892474d.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/e7447e386029d260d7d6ed54722a3e81.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/4df0a70b99fbf38d7f64dc8b7762acde.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/67b3a2a017674d677b6207551b1ecb19.writebug)
## 5.4 管理员操作界面
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c12fe88921bc5f658ca49e64bf69aee6.writebug)
# 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 = "inser
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
31089862274190694.zip (86个子文件)
band
src
band
.classpath 714B
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 357B
org.eclipse.core.resources.prefs 55B
.jsdtscope 555B
org.eclipse.wst.common.component 457B
org.eclipse.wst.common.project.facet.core.xml 296B
org.eclipse.wst.jsdt.ui.superType.container 49B
src
com
web
EncodingFilter.java 1KB
ContextListener.java 567B
dao
BandDao.java 286B
UserDao.java 966B
FanDao.java 242B
RecordDao.java 350B
MapFanMenberDao.java 342B
MapFanBandDao.java 323B
MenberDao.java 358B
service
Service.java 1KB
entity
Menber.java 1KB
Fan.java 595B
MapFanMenber.java 715B
MapFanBand.java 677B
Record.java 1KB
Band.java 1KB
User.java 911B
util
ConfigUtils.java 1KB
DBUtil.java 2KB
SYSParam.java 325B
action
AddRecord.java 2KB
RegisterServlet.java 2KB
AddLikeBand.java 2KB
AddBand.java 2KB
LoginController.java 2KB
AddMenber.java 2KB
AddFan.java 2KB
AddLikeMenber.java 2KB
build
classes
com
web
EncodingFilter.class 2KB
ContextListener.class 1KB
dao
UserDao.class 2KB
MapFanBandDao.class 984B
MenberDao.class 942B
BandDao.class 942B
FanDao.class 794B
RecordDao.class 1KB
MapFanMenberDao.class 1006B
service
Service.class 2KB
entity
User.class 1KB
Record.class 2KB
MapFanBand.class 807B
Menber.class 2KB
Fan.class 992B
MapFanMenber.class 819B
Band.class 1KB
util
SYSParam.class 429B
ConfigUtils.class 2KB
DBUtil.class 2KB
action
LoginController.class 2KB
AddLikeBand.class 2KB
AddMenber.class 2KB
AddLikeMenber.class 2KB
AddBand.class 2KB
RegisterServlet.class 2KB
AddFan.class 2KB
AddRecord.class 2KB
WebContent
WEB-INF
lib
jstl-1.2.jar 405KB
mysql-connector-java-5.1.16-bin.jar 768KB
web.xml 840B
config
jdbc.properties 149B
index.jsp 1KB
js
jquery-1.9.1.min.js 90KB
admin.jsp 1KB
menber.jsp 1KB
css
common.css 42B
register.jsp 1KB
images
2.jpg 23KB
1.jpg 50KB
5.jpg 64KB
3.jpg 64KB
4.jpg 93KB
fan.jsp 1KB
META-INF
MANIFEST.MF 36B
.project 1KB
band.sql 4KB
建表SQL.txt 2KB
LICENSE 1KB
README.md 9KB
共 86 条
- 1
资源评论
工具盒子
- 粉丝: 60
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功