歌曲信息管理系统设计Java版.docx
- 文档编号:13417325
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:21
- 大小:336.95KB
歌曲信息管理系统设计Java版.docx
《歌曲信息管理系统设计Java版.docx》由会员分享,可在线阅读,更多相关《歌曲信息管理系统设计Java版.docx(21页珍藏版)》请在冰点文库上搜索。
歌曲信息管理系统设计Java版
歌曲信息管理系统的设计与实现
摘要
第1章系统开发技术介绍
1.1JAVA技术
1.2JDBC定义
1.3MVC技术
1.4MYSQL概述
1.5SQL介绍
1.6运行环境
第2章系统需求分析
2.1系统功能设计
2.2数据需求
第3章数据库设计
3.1数据库系统
3.2数据处理流程
3.2.1系统登陆流程
3.2.2.主流程
3.2.3添加歌曲流程
3.2.4修改歌曲流程
3.2.5查询歌曲流程
3.3系统数据库设计
3.3.1E-R图
3.3.2数据库表
第4章系统实现
4.1系统功能图
4.1.1系统管理模块实现
4.1.2添加歌曲模块实现
4.2系统主要类说明
4.3系统主要功能实现
4.3.1.显示操作主页面功能实现
4.3.2.添加歌曲功能实现
4.3.3.删除功能实现(代码省略)
4.3.4修改功能实现(代码略)
4.3.5查询功能实现(代码略)
4.3.6连接功能实现(代码略)
摘要
科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。
信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。
因此,KTV歌曲资源管理系统也以方便、快捷、费用低的优点正慢慢改变着对歌曲信息的管理,将传统的手工管理方式彻底的解脱出来,提高效率,减轻管理员以往繁忙的工作,减小出错的概率,使使用者歌曲可以更好的获取信息、了解信息、掌握信息。
开发一个界面友好易于操作的歌曲资源管理系统进行自动化处理变得十分重要,这正是本系统开发的目的和意义。
歌曲信息管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合要求,对MYSQL数据库管理系统、数据库组件、SQL语言原理、JAVA应用程序设计,对数据库技术进行了较深入的学习和应用,主要完成对管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
系统运行结果证明,本文所设计的歌曲信息管理系统可以满足用户的需要。
实现了数据库表的查询、添加、删除和修改,实现了多种条件查询等。
设计充分利用JAVA、MY SQL数据库技术的强大力量,提高了编程效率和可靠性。
【关键词:
】 JAVA;SQL语言;MY SQL;数据库;;歌曲管理系统
第1章系统开发技术介绍
1.1JAVA技术
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
目前常用的Java平台基于Java1.5,最近版本为Java1.7。
1.2JDBC定义
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,JDBC扩展了Java的功能。
1.3MVC技术
MVC三层架构也称MVC模式,主要是将程序开发分为MODEL层(数据持久层)、VIEW(界面表示层)、CONTROL层(控制层)这三个层面,并将这三个层面分开来,形成了一个立体的架构。
三个层次之间的主要交互如下所示:
1.3.1MVC设计模式的实现
(1)视图是模型的表示,它提供用户交互界面。
(2)为了能够控制和协调每个用户跨越多个请求的处理,控制机制以集中的方式进行管理。
(3)MVC系统中的模型从概念上可以分为两类:
系统的内部状态和改变系统状态的动作。
1.4MYSQL概述
MySQL是一个精巧的SQL数据库管理系统。
MySQL是一个真正的多用户、多线程SQL数据库服务器。
MySQL是以一个客户机/服务器结构的实现,由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
MySQL主要目标是快速、健壮和易用。
1.5SQL介绍
SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。
SQL通常使用于数据库的通讯。
SQL为许多任务提供了命令,其中包括:
(1)查询数据
(2)在表中插入、修改和删除记录
(3)建立修改和删除数据对象
(4)控制对数据和数据对象的存取
(5)保证数据库一致性和完整性
1.6运行环境
硬件平台:
❑CPU:
InterCore™2T5500@1.66GHz;
❑内存:
2G。
软件平台:
❑操作系统:
WindowsXP;
❑数据库:
MySQL5.0;
❑开发工具包:
JDKVersion1.5;
❑开发工具:
MyEclipse5.5.1;
❑浏览器:
IE7.0;
❑分辨率:
最佳效果1024*768像素。
第2章系统需求分析
2.1系统功能设计
a.功能划分,该软件具有如下主要功能:
查询功能;
插入功能;
修改功能;
删除功能;
b.功能描述
查询功能:
按照歌曲相应属性查询;
插入功能:
增加一个歌曲记录;
修改功能:
修改某一已存在的记录内容;
删除功能:
删除一个记录;
2.2数据需求
歌曲:
歌曲编号,歌曲名称,歌曲类型,歌手名称,歌手性别,歌手年龄,歌手图片等。
用户:
用户名,密码;
第3章数据库设计
3.1数据库系统
3.1.1数据库
采用MySQL数据库。
3.1.2数据采集
数据采集采用键盘输入。
3.2数据处理流程
3.2.1系统登陆流程
要求用户输入用户名及密码。
建立与数据库的连接。
根据操作权限显示主对话框(即主界面),进入主流程。
3.2.2.主流程
1如为添加歌曲,进入添加歌曲流程(显示添加歌曲对话框)。
2如为修改歌曲:
进入修改歌曲流程(显示修改歌曲对话框)。
3如为查询歌曲:
进入查询歌曲流程(显示查询歌曲对话框)。
4如为删除歌曲:
进入删除歌曲流程(显示删除歌曲对话框)。
5如为退出:
检查所有子窗口,关闭对话框,断开与数据库的连接,
结束主流程。
3.2.3添加歌曲流程
要求用户输入新增歌曲的各种信息。
确认后提交添加歌曲请求,更新信息,把添加信息写入数据库,显示添加歌曲操作结果。
如为完成添加歌曲操作:
结束添加歌曲流程。
3.2.4修改歌曲流程
要求用户输入修改歌曲的各种信息。
确认后提交修改歌曲请求,更新信息,把修改信息写入数据库,显示修改歌曲操作结果。
如为完成修改歌曲操作:
结束修改歌曲流程。
3.2.5查询歌曲流程
要求用户输入要查询歌曲的任一种信息。
确认后提交查询歌曲请求,更新信息,显示查询歌曲操作结果。
如为完成查询歌曲操作:
结束查询歌曲流程。
3.3系统数据库设计
3.3.1E-R图
3.3.2数据库表
用户表:
Users
字段
数据类型
备注
Uid
int
会员号
Uname
varchar(20)
姓名
Upassword
varchar(20)
密码
歌曲表:
Songs
字段
数据类型
备注
Songid
int
歌曲编号
Songname
varchar(20)
歌曲名称
Songtype
varchar(20)
歌曲类型
Songername
varchar(20)
歌手名称
Songersex
varchar(20)
歌手性别
Songerage
Int
歌手年龄
Songerpictuer
varchar(20)
歌手图片
第4章系统实现
4.1系统功能图
4.1.1系统管理模块实现
功能:
运行主界面
建立与数据库连接
根据输入调用子模块
退出系统时断开与数据库的连接
歌曲信息管理结构图:
歌曲信息管理流程图:
初始化
主界面
连接数据库
歌曲添加界面
退出主界面
歌曲修改界面
按键选择,是否退出
否
是
歌曲查询界面
歌曲删除界面
关于帮助界面
4.1.2添加歌曲模块实现
功能:
运行添加歌曲界面
输入添加歌曲信息
添加成功是显示添加后界面
退出时返回主界面
添加歌曲结构图:
添加歌曲流程图:
添加歌曲界面
输入添加歌曲的信息
保存
正确
显示添加成功界面
向数据库添加信息记录
错误
退出
4.2系统主要类说明
1实体封装类
歌曲类(Song),封装歌曲的一系列信息(songname、singer、type等),对歌曲的添加、修改、删除等数据临时存储于传递,对歌曲的信息进行维护管理。
2持久化类
·数据库连接工具类(JDBCUtil),主要作用为数据持久化操作提供连接,并通过静态化方式实现单例模式,有效防止了重复连接,优化了数据库访问效率。
·数据持久化类(OperateDao),主要业务逻辑控制类,主要方法有添加歌曲,根据ID删除歌曲,查找所有歌曲,根据条件查找歌曲,修改歌曲等方法,分别控制歌曲添加、删除、查找、修改等业务逻辑。
3主要视图与业务逻辑类
·登陆业务逻辑控制类(Login),显示登录窗体。
主要控制为,判断用户输入是否合法(是否为空等),根据用户的输入的数据,调用数据库持久化类,查询数据库数据,然后进行对比判断,根据判断结果,显示主界面或者提示用户重新输入等操作。
·歌曲管理操作主界面(MainView),显示歌曲添加、删除、修改、查询等操作,可以动态显示不同操作的视图(如背景图片,操作信息等)。
根据相应的操作按钮监听,创建不同操作的组件,然后调用持久化类与数据库交互,获得相应的数据,然后通过本类的主Panel组件,添加删除相应业务组件,从而实现不同操作的动态显示
4.3系统主要功能实现
4.3.1.显示操作主页面功能实现(界面代码如下略)
packagektv.ui;
importjava.awt.BorderLayout;
publicclassktvFrameextendsJFrame{
//主窗体的宽度
privateintframe_width=800;
//主窗体的高度
privateintframe_height=600;
//主窗体的标题
privateStringframe_title=ktvConfig.MAINFRAME_TITLE;
//主窗体的背景颜色
privateColorframe_bgcolor=Color.DARK_GRAY;
//主窗体的图标
privateImageIconicon=newImageIcon(ktvConfig.MAINFRAME_ICO);
/*ktvFrame类的构造函数,初始化ktv系统主窗体*/
publicktvFrame(){
super();
if(this.initMainFrame(this))
{System.out.println("initializationofthemainframeissuccessful");
}else{System.out.println("initializationofthemainframeisfault");
System.exit
(1);}}
publicJDesktopPanegetJDesktopPane()
{returnthis.jdeskpane;}
/**初始化ktv系统主窗体*/
PublicbooleaninitMainFrame(ktvFrameframe)
{if(frame==null){
System.out.println("ktvFrame'sobjectisnull");
System.exit
(1);
}try{Jdeskpane=newJDesktopPane();
frame.setIconImage(frame_ico);
jdeskpane.setBackground(this.frame_bgcolor);
frame.setSize(this.frame_width,this.frame_height);
frame.setTitle(frame_title);
frame.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-this.frame_width)/2,
(Toolkit.getDefaultToolkit().getScreenSize().height-this.frame_height)/2);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗体样式
UIManager.setLookAndFeel(UIManager.getInstalledLookAndFeels()[0].getClassName());
SwingUtilities.updateComponentTreeUI(frame);
//创建桌面面板createDeskpane(frame);
//创建内部窗体createShowAllSongsFrame(frame,"moon-ktv所有歌曲");
//创建菜单createMenu(frame);
//创建工具栏createToolbar(frame);
//创建状态栏createStatusbar(frame);
}catch(Exceptione){
e.printStackTrace();
returnfalse;}
returntrue;}
publicktvMenugetKtvMenu(){
returnthis.kM;}
publicktvToolBargetKtvToolBar(){
returnthis.kTB;}
publicktvStatusBargetKtvStatusBar(){
returnthis.kS;}
//添加菜单
publicvoidcreateMenu(ktvFrameframe){
if(frame==null){
System.out.println("ktvFrame'sobjectisnull");
System.exit
(1);}
kM=newktvMenu();
frame.setJMenuBar(kM);}
//添加工具栏
publicvoidcreateToolbar(ktvFrameframe){
if(frame==null){
System.out.println("ktvFrame'sobjectisnull");
System.exit
(1);}
kTB=newktvToolBar();
frame.getContentPane().add(kTB,BorderLayout.NORTH);}
//添加状态栏
publicvoidcreateStatusbar(ktvFrameframe){
if(frame==null){
System.out.println("ktvFrame'sobjectisnull");
System.exit
(1);}
kS=newktvStatusBar();
frame.getContentPane().add(kS,BorderLayout.SOUTH);}
//添加桌面面板
publicvoidcreateDeskpane(ktvFrameframe){
if(frame==null){
System.out.println("ktvFrame'sobjectisnull");
System.exit
(1);}
frame.getContentPane().add(jdeskpane);}
//添加内部窗体
publicvoidcreateShowAllSongsFrame(ktvFrameframe,Stringcontent){
if(frame==null){
System.out.println("ktvFrame'sobjectisnull");
System.exit
(1);}
innerframe=newshowAllSongsFrame(content);
frame.getJDesktopPane().add(innerframe);
}
}
4.3.2.添加歌曲功能实现
点击添加歌曲菜单后,会弹出添加歌曲框(addSongFrame),填入相应的数据,单击保存后,数据添加进数据库,界面显示添加后的歌曲信息,界面代码(略,只添加歌曲名称的)如下,显示结果如下图。
packagektv.ui;
importjava.awt.GridLayout;
importktv.listeneraction.AllListenerAction;
publicclassaddSongFrameextendsJInternalFrame{
privateJLabellsongname=null;
privateGridLayoutcrd=null;
publicaddSongFrame(Stringtitle){
super(title,true,true,true,true);
crd=newGridLayout(7,2,0,10);
savebutton=newJButton("保存");
lsongname=newJLabel("歌曲名称:
");
lsongname.setIcon(newImageIcon(ktvConfig.MAINFRAME_ICO));
lsongname.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jtsongname=newJTextField();
this.setTitle(title);
this.add(lsongname);
this.add(savebutton);
savebutton.addActionListener(newAllListenerAction());
this.setVisible(true);
}
}
4.3.3.删除功能实现(代码省略)
选择相应要删除的歌曲(可以点击任意点,如歌曲编号,歌曲名称,歌曲类型等),点击后,在系统功能菜单中选择删除,该歌曲即可删除。
实现如下图所示:
4.3.4修改功能实现(代码略)
同删除一样,点击修改记录,弹出修改对话框,即可进行修改。
结果如下图所示:
4.3.5查询功能实现
可以实现五种查询功能,既全部数据,歌曲名,歌手名,歌曲类型,和歌手类别。
如图:
4.3.6.(OperateDao)主要方法有添加歌曲,删除歌曲,查找所有歌曲,根据条件查询歌曲,修改歌曲等方法,分别控制歌曲添加、删除、查找、修改等。
代码简略。
(例)指定查询songTable表
publicArrayList
Connectionselectconn=ktvMysqlDAO.getMysqlConn();
if(selectconn==null){
System.out.println("connectDBisfalse.selectconnobjectisnull.");
returnnull;
}
try{
ps=selectconn.prepareStatement("select*fromsongTablewhere"+searchkey+"='"+searchvalue+"'");
rs=ps.executeQuery();
if(rs!
=null){
while(rs.next()){
songBeansong=newsongBean();
song.setSongID(rs.getInt("songID"));
song.setSongName(rs.getString("songName"));
song.setSingerName(rs.getString("singerName"));
song.setSongType(rs.getString("songType"));
song.setSingerSex(rs.getString("singerSex"));
song.setSingerAge(rs.getString("singerAge"));
=new("singerName")+".gif");
byte[]b=newbyte[40000];
InputStreamis=rs.getBinaryStream("singerPhoto");
if(is!
=null){
is.read(b);
OutputStreamout=new(photofile);
out.write(b);
}
song.setSingerPhoto(photofile);
list.add(song);
}
}
}catch(Exceptione){
e.printStackTrace();
returnnull;
}finally{
ps.close();
selectconn.close();
}
returnlist;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 歌曲 信息管理 系统 设计 Java