歌曲信息管理系统的设计与实现目录摘要第1章系统开发技术介绍1.1 JAV A技术1.2 JDBC定义1.3 MVC技术1.4 MY SQL 概述1.5 SQL 介绍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.1 E-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歌曲资源管理系统也以方便、快捷、费用低的优点正慢慢改变着对歌曲信息的管理,将传统的手工管理方式彻底的解脱出来,提高效率,减轻管理员以往繁忙的工作,减小出错的概率,使使用者歌曲可以更好的获取信息、了解信息、掌握信息。
开发一个界面友好易于操作的歌曲资源管理系统进行自动化处理变得十分重要,这正是本系统开发的目的和意义。
歌曲信息管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合要求,对MY SQL 数据库管理系统、数据库组件、SQL语言原理、JA V A应用程序设计,对数据库技术进行了较深入的学习和应用,主要完成对管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
系统运行结果证明,本文所设计的歌曲信息管理系统可以满足用户的需要。
实现了数据库表的查询、添加、删除和修改,实现了多种条件查询等。
设计充分利用JA V A、MY SQL数据库技术的强大力量,提高了编程效率和可靠性。
【关键词:】 JA V A;SQL语言;MY SQL;数据库;;歌曲管理系统第1章系统开发技术介绍1.1 JAV A技术Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java 平台之后,Java应用程序就可运行。
目前常用的Java平台基于Java1.5,最近版本为Java1.7。
1.2 JDBC定义JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,JDBC 扩展了Java 的功能。
1.3 MVC技术MVC三层架构也称MVC模式,主要是将程序开发分为MODEL层(数据持久层)、VIEW (界面表示层)、CONTROL层(控制层)这三个层面,并将这三个层面分开来,形成了一个立体的架构。
三个层次之间的主要交互如下所示:1.3.1 MVC设计模式的实现(1)视图是模型的表示,它提供用户交互界面。
(2)为了能够控制和协调每个用户跨越多个请求的处理,控制机制以集中的方式进行管理。
(3)MVC系统中的模型从概念上可以分为两类:系统的内部状态和改变系统状态的动作。
1.4 MY SQL 概述My SQL是一个精巧的SQL数据库管理系统。
My SQL是一个真正的多用户、多线程SQL 数据库服务器。
My SQL是以一个客户机/服务器结构的实现,由一个服务器守护程序my sqld 和很多不同的客户程序和库组成。
My SQL 主要目标是快速、健壮和易用。
1.5 SQL 介绍SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。
SQL通常使用于数据库的通讯。
SQL为许多任务提供了命令,其中包括:(1)查询数据(2)在表中插入、修改和删除记录(3)建立修改和删除数据对象(4)控制对数据和数据对象的存取(5)保证数据库一致性和完整性1.6 运行环境硬件平台:❑CPU:Inter Core™2 T5500 @ 1.66GHz;❑内存:2G。
软件平台:❑操作系统:Windows XP;❑数据库:MySQL 5.0;❑开发工具包:JDK Version1.5;❑开发工具:MyEclipse5.5.1;❑浏览器:IE7.0;❑分辨率:最佳效果1024*768像素。
第2章系统需求分析2.1系统功能设计a.功能划分,该软件具有如下主要功能:查询功能;插入功能;修改功能;删除功能;b.功能描述查询功能:按照歌曲相应属性查询;插入功能:增加一个歌曲记录;修改功能:修改某一已存在的记录内容;删除功能:删除一个记录;2.2数据需求歌曲:歌曲编号,歌曲名称,歌曲类型,歌手名称,歌手性别,歌手年龄,歌手图片等。
用户:用户名,密码;第3章数据库设计3.1数据库系统3.1.1数据库采用My SQL数据库。
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查询歌曲流程要求用户输入要查询歌曲的任一种信息。
确认后提交查询歌曲请求,更新信息,显示查询歌曲操作结果。
如为完成查询歌曲操作:结束查询歌曲流程。
Id PK Username 用户名password 密码3.3.2 数据库表歌曲表:Songs第 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. 显示操作主页面功能实现(界面代码如下略)package ktv.ui;import java.awt.BorderLayout;public class ktvFrame extends JFrame {//主窗体的宽度private int frame_width = 800;//主窗体的高度private int frame_height = 600;//主窗体的标题private String frame_title = ktvConfig.MAINFRAME_TITLE;//主窗体的背景颜色private Color frame_bgcolor = Color.DARK_GRAY;//主窗体的图标private ImageIcon icon = new ImageIcon(ktvConfig.MAINFRAME_ICO);/* ktvFrame类的构造函数,初始化ktv系统主窗体*/public ktvFrame() {super();if(this.initMainFrame(this)){System.out.println("initialization of the main frame is successful");} else { System.out.println("initialization of the main frame is fault");System.exit(1);}}public JDesktopPane getJDesktopPane(){ return this.jdeskpane;}/* * 初始化ktv系统主窗体*/Public boolean initMainFrame(ktvFrame frame){ if(frame == null) {System.out.println ("ktvFrame's object is null");System.exit (1);} try { Jdeskpane = new JDesktopPane ();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(Exception e) {e.printStackTrace();return false; }return true; }public ktvMenu getKtvMenu() {return this.kM;}public ktvToolBar getKtvToolBar() {return this.kTB;}public ktvStatusBar getKtvStatusBar() {return this.kS;}//添加菜单public void createMenu(ktvFrame frame) {if(frame == null) {System.out.println("ktvFrame's object is null");System.exit(1);}kM = new ktvMenu();frame.setJMenuBar(kM);}//添加工具栏public void createToolbar(ktvFrame frame) {if(frame == null) {System.out.println("ktvFrame's object is null");System.exit(1); }kTB = new ktvToolBar();frame.getContentPane().add(kTB, BorderLayout.NORTH); }//添加状态栏public void createStatusbar(ktvFrame frame) {if(frame == null) {System.out.println("ktvFrame's object is null");System.exit(1);}kS = new ktvStatusBar();frame.getContentPane().add(kS, BorderLayout.SOUTH); }//添加桌面面板public void createDeskpane(ktvFrame frame) {if(frame == null) {System.out.println("ktvFrame's object is null");System.exit(1); }frame.getContentPane().add(jdeskpane); }//添加内部窗体public void createShowAllSongsFrame(ktvFrame frame, String content) {if(frame == null) {System.out.println("ktvFrame's object is null");System.exit(1); }innerframe = new showAllSongsFrame(content);frame.getJDesktopPane().add(innerframe);}}4.3.2.添加歌曲功能实现点击添加歌曲菜单后,会弹出添加歌曲框(addSongFrame),填入相应的数据,单击保存后,数据添加进数据库,界面显示添加后的歌曲信息,界面代码(略,只添加歌曲名称的)如下,显示结果如下图。