音乐网站管理系统.docx

上传人:b****7 文档编号:9862418 上传时间:2023-02-07 格式:DOCX 页数:13 大小:17.11KB
下载 相关 举报
音乐网站管理系统.docx_第1页
第1页 / 共13页
音乐网站管理系统.docx_第2页
第2页 / 共13页
音乐网站管理系统.docx_第3页
第3页 / 共13页
音乐网站管理系统.docx_第4页
第4页 / 共13页
音乐网站管理系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

音乐网站管理系统.docx

《音乐网站管理系统.docx》由会员分享,可在线阅读,更多相关《音乐网站管理系统.docx(13页珍藏版)》请在冰豆网上搜索。

音乐网站管理系统.docx

音乐网站管理系统

表1-1用户信息表(siteUser)

字段名称

说明

数据类型

字段长度

是否允许空

约束

userID

编号

Nvarchar2

4

主键

userName

姓名

Nvarchar2

8

password

密码

Nvarchar2

8

isAdmin

是否管理员

number

1

取值是0或1,默认0

表1-2专辑表(Album)

字段名称

说明

数据类型

字段长度

是否允许空

约束

albumID

专辑编号

Nvarchar2

4

主键

albumName

专辑名称

Nvarchar2

20

albumIntro

专辑简介

Nvarchar2

2000

issueDate

发行时间

date

singerID

歌手编号

Nvarchar2

4

languageID

语言编号

Nvarchar2

4

classifyID

分类编号

Nvarchar2

4

表1-3歌手表(Singer)

字段名称

说明

数据类型

字段长度

是否允许空

约束

singerID

歌手编号

Nvarchar2

4

主键

singerName

姓名

Nvarchar2

20

isGroup

是否组合

number

1

取值是0或1,默认0

sex

性别

number

1

检查约束(男,女)

表1-4语言表(Language)

字段名称

说明

数据类型

字段长度

是否允许空

约束

languageID

语言编号

Nvarchar2

4

主键

languageName

语言名称

Nvarchar2

20

表1-5专辑分类表(albumClassify)

字段名称

说明

数据类型

字段长度

是否允许空

约束

classifyID

分类编号

Nvarchar2

4

主键

classifyName

分类名称

Nvarchar2

20

表1-6歌曲表(Song)

字段名称

说明

数据类型

字段长度

是否允许空

约束

songID

歌曲编号

Nvarchar2

4

主键

songName

歌曲名称

Nvarchar2

20

singerID

歌手编号

Nvarchar2

4

votes

人气值

number

1

默认值0

songFile

歌曲文件

blob

1.创建数据库表

1)创建siteUser(用户信息表)

CreatetablesiteUser(

userIDNvarchar2(4)constraintpk_siteUserprimarykey,

userNameNvarchar2(20)notnull,

PasswordNvarchar2(8),

isAdminnumber

(1)default0check(isAdminin(0,1)));

2)创建Album(专辑表)

CreatetableAlbum(

albumIDNvarchar2(4)constraintpk_Albumprimarykey,

albumNameNvarchar2(20)notnull,

albumIntroNvarchar2(2000),

issueDatedate,

singerIDNvarchar2(4)notnull,

languageIDNvarchar2(4)notnull,

classifyIDNvarchar2(4)notnull);

3)创建表Singer(歌手表)

CreatetableSinger(

singerIDNvarchar2(4)constraintpk_Singerprimarykey,

singerNameNvarchar2(20)notnull,

isGroupnumber

(1)default0check(isGroupin(0,1))

sexnchar

(1));

4)创建Language表(语言表)

CreatetableLanguage(

languageIDNvarchar2(4)constraintpk_Languageprimarykey,

languageNameNvarchar2(20)notnull);

5)创建albumClassify表(专辑分类表)

CreatetablealbumClassify(

classifyIDNvarchar2(4)constraintpk_albumClassifyprimarykey,

classifyNameNvarchar2(20)notnull);

6)创建表Song(歌曲表)

CreatetableSong(

songIDNvarchar2(4)constraintpk_Songprimarykey,

songNameNvarchar2(20)notnull,

singerIDNvarchar2(4)notnull,

votesnumber

(1)default0,

song);

2.创建约束

1)创建表singer的检查约束signer_chk1:

Altertablesigneraddconstraintsinger_chk1check(sexin(‘男’,’女’));

2)创建表album的外键约束Abbum_singer_fk1:

AltertablealbumaddconstraintAbbum_signer_fk1foreignkey(singerID)referencesigner(singerID);

3)创建表album的外键约束Abbum_language_fk1:

AltertablealbumaddconstraintAbbum_language_fk1foreignkey(languageID)referenceslanguage(languageID);

4)创建表album的外键约束Abbum_classify_fk1:

AltertablealbumaddconstraintAbbum_classify_fk1foreignkey(classifyID)referencesAblumclassify(classifyID);

5)创建表Song的外键约束Song_Singer_fk1:

AltertableSongaddconstraintSong_Singer_fk1foreignkey(singerID)referencesSinger(singerID);

 

3.创建视图

1)创建视图V_album用以显示专辑信息

Createorreplaceviewv_album

As

Selectt1.albumID,t1.albumName,t1.albumIntro,t1.issueDate,

t4.singerName,t3.languageName,t2.classifyName

Fromalbumt1innerjionalbumclassifyt2ont1.classifyID=t2.classifyID

Innerjionlanguaget3ont1.languageID=t3.languageID

INNERJOINsingert4ont1.singerID=t4.singerID;

2)显示歌曲信息

Createorreplaceviewv_song

As

Selectt1.songID,t1.songName,t2.singerName,t1.votes,t1.songsongt1innerjoinsingert2ont1.singerID=t2.singerID;

4.创建存储过程

1)向专辑表(album)中插入数据的存储过程

Createorreplaceproceduresp_insertAlbum

AlbumIDNVARCHAR2,

albumNameNVARCHAR2,

albumIntroNVARCHAR2,

isssueDateDATE,

SingerIDNVARCHAR2,

languageIDNVARCHAR2,

classifyIDNVARCHAR2)

AS

BEGIN

Insertintoalbumvalues(

AlbumID,albumName,albumIntro,issueDate,singerID,languageID,classifyID);

ENDsp_insertAlbum;

2)修改专辑表数据的存储过程

Createorreplaceproceduresp_updateAlbum

fAlbumIDNVARCHAR2,

falbumNameNVARCHAR2,

falbumIntroNVARCHAR2,

fisssueDateDATE,

fSingerIDNVARCHAR2,

flanguageIDNVARCHAR2,

fclassifyIDNVARCHAR2)

AS

BEGIN

Updatealbumsett

AlbumID=fAlbumID,

albumName=falbumName,

albumIntro=falbumIntro,

issueDate=fisssueDate,

singerID=fSingerID,

LanguageID=flanguageID,

ClassifyIDfclassifyID;

ENDsp_updateAlbum;

3)创建删除专辑表数据的存储过程

Createorreplaceproceduresp_deleteAlbum

fAlbumIDNVARCHAR2)

As

Begin

DeletefromalbumwherealbumID=falbumID;

ENDsp_deletefalbum;

 

ConnectionFactory类:

Packagecn.edu.hbsi.db;

Importjava.io.IOException;

Importjava.io.InputStream;

Importjava.sql.Connection;

Importjava.sql.DriverManager;

Importjava.sql.SQLException;

Importjava.util.Properties;

//获得数据库连接

PublicclassConnectionFactory{

//数据库驱动类名

PrivatestaticStringDRIVER=””;

//连接数据库的URL

PrivatestaticStringURL=””;

//连接数据库的用户名

PrivatestaticStringUSERNAME=””;

//连接数据库的密码

PrivatestaticStringPASSWORD=””;

PrivateConnectionFactory{

}

Static{

getPropertiesInfo();

}

//该方法用来获得属性文件中的driver,url,username,password

PrivatestaticgetPropertiesInfo(){

Propertiesprop=newProperties();

InputStreaminStream=Thread.currentThread().getContextClassLoader().

getResourseAsStream(“jdbcCon.properties”);

Try{

//获得相应的键值对

Prop.load(inStream);

}

Catch(IOExceptione){

e.printStaticTrace();

}

//根据相应的键获得对应的值

DRIVER=prop.getProperty(“driver”);

URL=prop.getProperty(“url”);

USERNAME=prop.getProperty(“username”);

PASSWORD=prop.getProperty(“password”);

}

//该方法用来加载驱动,并会的数据库的连接对象@return数据库连接对象conn

PublicstaticConnectiongetConnection(){

Connectionconn=null;

Try{//加载驱动程序

Class.forName(DRIVER);

}

catch(ClassNotFoundExcepyione){

e.printStaticTrace();

}

Try{

//获得数据库连接的对象

Conn=DriverManager.getConnection(URL.USERNAME,PASSWORD);

}

Catch(SQLExceptione){

e.printStaticTrace();

}

Returnconn;

}

}

DbClose类:

Pacagecn.edu.hbsi.db;

Importjava.sql.Connection;

Importjava.sql.Result;

Importjava.sql.SQLExcwption;

Importjava.sql.Statement;

PublicclassDbClose{

Publicstaticvoidclose(Connectionconn){

If(null!

=conn){

Try{

Conn.close();

}

Catch(SQLExceptione){

e.printStaticTrace();

}

}

}

Publicstaticvoidclose(Statementstmt){

If(null!

=stmt){

Try{

stmt.close();

}

Catch(SQLExceptione){

e.printStaticTrace();

}

}

}

Publicstaticvoidclose(ResultSetrs){

If(null!

=rs){

Try{

rs.close();

}

Catch(SQLExceptione){

e.printStaticTrace();

}

}

}

Publicstaticvoidclose(ResultSetrs,Statementstmt,Connectionconn){

Close(rs);

Close(stmt,conn);

}

Publicstaticvoidclose(Statementstmt,Connectionconn){

Close(stmt);

Close(conn);

}

}

核心模块的实现:

1)在Calbum类中编写insertAlbum方法,调用ORACLE数据库中的存储过程SP_INSERTALBUM实现插入数据操作:

PublicvoidinsertAlbum(StringALBUMID,StringALBUMNAME,StringALBUMINTRO,DATEISSUEDATE,StringSINGERID){

Connectioncon=null;

CallableStatementcs=null;

ResultSetrs=null;

Try{

Con=ConnectionFactory.getConnection();

Stringsql=”{callSP_INSERTALBUM(?

?

?

?

?

?

?

)}”;

cs=con.prepareCall(aql);

cs.setString(1,ALBUMID);

cs.setString(2,ALBUMNAME);

cs.setString(3,ALBUMINTRO);

cs.setString(4,ISSUEDATE);

cs.setString(5,SINGERID);

cs.setString(6,LANGUAGEID);

cs.setString(7,CLASSIFYID);

Cs.execute();

Catch(Excepyione){

e.printStaticTrace();

}

Finally{

Dbclose.close(rs,cs,conn);

}

}

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1