1、Java课程设计报告设备管理系统JAVA课程设计报告 课题名称:设备管理系统 1 项目总体规划 12 系统需求分析 42.1用户管理基本功能分析 52.2设备管理基本功能分析 62.3数据管理基本功能分析 23 数据库设计 14 关键技术和难点 14.1 数据库连接 34.2 SQL语句的使用 25 系统详细设计与实现 15.1用户管理设计与实现 55.2设备管理设计与实现 65.3数据管理设计与实现 26 项目测试 17 参考文献 1摘要:随着社会生产活动中自动化水平越来越高,设备的监控及其数据的存储越来越重要。本系统使用JAVA语言,结合实际编写了该设备管理系统,可以实现对数据库的准确操作
2、,完成用户的登录、修改密码、添加用户、删除用户,及设备的添加和删除,设备数据的添加、删除和查询等一系列功能。关键词:设备管理系统 数据库技术 JDBC SQL语句1.项目总体规划随着社会生产活动中自动化水平越来越高,设备的监控及其数据的存储越来越重要。数据库技术已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心.对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用.随着我国市场经济的迅速发展,在工厂中,为了有效管理各种设备及其在运作过程中产生的数据,开发一个方便高效的管理软件是非常必要的。本系统使用JAVA语言,结合
3、实际编写了该设备管理系统,可以实现对数据库的准确操作,完成用户的登录、修改密码、添加用户、删除用户,及设备的添加和删除,设备数据的添加、删除和查询等一系列功能。本系统开始运行时首先进入登陆界面,用户输入正确的用户名及密码后进入主窗体,然后通过点击主窗体的各项菜单进入各项功能。2.系统需求分析2.1用户管理基本功能分析系统中用户需要正确的密码才能获得能录权限,登录之后可以进行一系列数据操作。其功能定义如图1所示。 图12.2设备管理基本功能分析设备管理可以实现对设备的添加和删除,其功能定义如图2所示。 图22.3数据管理基本功能分析数据管理室系统的核心,可以实现对数据的添加、删除及查询,其功能定
4、义如图3所示。 图33。数据库设计本系统使用微软公司的ACCESS数据,数据源名称为” shebei .根据系统的需求,经过详细的分析设计,本系统数据库中各个数据表的字段定义和说明如下。users(用户信息表),存放注册用户的信息,如表1. 表1 users 字段名称数据类型大小描述username文本50用户名password文本50密码shebeilist(设备列表),存放设备列表,如表2. 表2 shebeilist字段名称数据类型大小描述id数字(自动编号)4ID号shebeiname文本50设备名称shebei1(设备信息表),名为shebei1 的设备的各项数据(程序中每台设备建一
5、个数据表),如表3. 表3 shebei1字段名称数据类型大小描述id数字(自动编号)4ID号dianya数字4电压值dianliu数字4电流值zhuangtai文本50状态guzhangcs数字4故障次数4. 关键技术和难点4。1数据库连接JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC访问ACCESS有两种方式,一种是JDBC-OD
6、BC桥接式,另一种是ODBC直接方式。本系统使用的是ODBC直接方式。ODBC直接连接方式采用了JDBC直接连接思想。他是在程序中直接指出需要使用的ODBC驱动程序,从而免去了配置数据源的麻烦,提高程序的可移植性。首先需要加载驱动程序,代码如下:try Class.forName(”sun。jdbc。odbc。JdbcOdbcDriver); catch (ClassNotFoundException e) System.out.println(”加载驱动程序错误!+e); 然后就可以通过数据源连接到数据库,关键代码如下:Connection conn; Statement stmt; Res
7、ultSet rs; String url=”jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb);DBQ=shebei.mdb”;conn=DriverManager。getConnection(url,”,”); stmt=conn。createStatement(); rs=stmt。executeQuery(SELEC* FROM users where username=”+”+t_name。getText()+”); rs.close(); stmt.close(); conn.close();4.2 SQL语句的使用系统开发过程中关键部
8、分是SQL语句的使用。SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL语言包含4个部分: 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。 数据查询语言(DQL),例如:SELECT语句。 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用
9、户在高层数据结构上工作.它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的 SQL接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出。例如程序中用到的有:”INSERT INTO ” + s + ” (dianya ,dianliu,zhuangtai,guzhangcs) VALUES (+s1+,+s2+”, +s3+ ,”+s4+)CREATE TABLE + s + ” ( id COUNTER(1,1) ,dianya varchar(50) ,d
10、ianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )”DROP TABLE + s”DELETE FROM users WHERE username =+s1”SELECT * FROM users where username=+”+t_name.getText()+UPDATE users SET password=”+s3+” WHERE username =+s25 系统详细设计与实现5.1用户管理设计与实现 用户管理中最重要的登陆,此时要核对用户名和密码是否一致。关键代码如下: conn=DriverManag
11、er.getConnection(url,”,”); stmt=conn。createStatement(); rs=stmt。executeQuery(SELECT FROM users where username=+”+t_name。getText()+”); while(rs。next()) sname=rs。getString(1); spass=rs.getString(2); if(t_name.getText().equals(sname)&t_pass.getText().equals(spass)) l_error.setText(”登陆成功”); t_name。setTe
12、xt(”); t_pass.setText(”); myframe =new MyFrame(); this.dispose(); break; else l_error。setText(用户名或密码错误); until+; 5。2设备管理设计与实现 设备管理模块中添加设备实际上是在数据库中新建一个表,删除设备实质上是删除一个表。添加设备关键代码如下: conn=DriverManager。getConnection(url,”,); stmt=conn。createStatement(); rs=stmt.executeQuery(”SELECT * FROM shebeilist wher
13、e shebeiname=+”+t_name。getText()+); if(rs。next() a1.setText(”设备已经存在,添加失败!); else String temp=”INSERT INTO shebeilist (shebeiname) VALUES ( + s1 + ); stmt。executeUpdate(temp); String temp1=”CREATE TABLE ” + s + ” ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzh
14、angcs INTEGER )”; stmt.execute(temp1); a1.setText(”设备添加成功!); rs。close(); stmt.close(); conn。close();5。3数据管理设计与实现 此模块是对数据库中某个设备的某一条数据进行操作,添加、删除或查询,其中查询功能关键代码如下: conn=DriverManager。getConnection(url,”,”); stmt=conn。createStatement(); if (s1.equals(ID) rs=stmt.executeQuery(”SELECT FROM ” + s + WHERE id
15、 LIKE +”+t_guanjian。getText()。trim()+”); else if (s1。equals(电压) rs=stmt。executeQuery(SELECT FROM ” + s + WHERE dianya LIKE +”+t_guanjian。getText().trim()+”); else if (s1。equals(状态) rs=stmt。executeQuery(SELECT * FROM ” + s + ” WHERE zhuangtai LIKE ”+”+t_guanjian。getText()。trim()+); else if (s1.equals
16、(”故障次数”)) rs=stmt.executeQuery(”SELECT FROM + s + ” WHERE guzhangcs LIKE +”+t_guanjian。getText().trim()+”); else if (s1。equals(电流)) rs=stmt.executeQuery(”SELECT * FROM + s + ” WHERE dianliu LIKE +”+t_guanjian。getText()。trim()+”); 6 项目测试 本系统在运行调试的过程中遇到很多错误并进行了大量的调试和改正。1.连接数据库出错,程序中定义了String url=”jdbc
17、:odbc:Driver=MicroSoft Access Driver (.mdb);DBQ=shebei.mdb;而我的数据库access使用的是2007版本的,access后缀为accdb,后缀改为mdb后数据库连接正常.2.使用组件JPasswordField的方法getPassword用于比较识别用户密码是否正确是出错,原因是该方法返回值为cha,与数据库中密码数据类型(String)不匹配,比较不出来,把JPasswordField换为TextField使用方法getText后问题解决。3.点击菜单后对话框不显示,加入语句 setVisible(true)之后问题解决。4.程序中s
18、ql语句中表名为变量,语句”CREATE TABLE s ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )有错,改为”CREATE TABLE ” + s + ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50),zhuangtai varchar(50) ,guzhangcs INTEGER )”后问题解决,因为sql语句事实上为一个字符串,变量不能写到引号里,应用加号拼接
19、。5.程序中sql语句中数据类型不匹配,如”SELECT * FROM + s + ” where id=”+ t_id。getText(),id数据类型为数字,而t_id.getText()为字符串,改为SELECT FROM ” + s + where id=”+Integer.valueOf(t_id。getText())。intValue(),即把String转换为Integer。6.程序中用到下拉菜单,下拉菜单中内容为设备名,可功能中有添加设备的功能,为实现下拉菜单的动态显示,新建了一个表即设备列表,来保存已有的设备名,每次打开下拉菜单是从数据库中读取设备名。7 参考文献1。 Java毕业设计指南与项目实践 孙更新等 编著。 科学出版社. 2008.32. Java基础与实例精解 宾春清 李建瑜 编著。 北京航空航天大学出版社。2009.73。 Java2实用教程 耿祥义 张跃平 编著。 清华大学出版社。 2006。8
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1