欢迎来到天天文库
浏览记录
ID:11994567
大小:34.16 KB
页数:10页
时间:2018-07-15
《java课程设计报告-设备管理系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
JAVA课程设计报告课题名称:设备管理系统 目录1项目总体规划12系统需求分析42.1用户管理基本功能分析52.2设备管理基本功能分析62.3数据管理基本功能分析23数据库设计14关键技术和难点14.1数据库连接34.2SQL语句的使用25系统详细设计与实现15.1用户管理设计与实现55.2设备管理设计与实现65.3数据管理设计与实现26项目测试17参考文献1 摘要:随着社会生产活动中自动化水平越来越高,设备的监控及其数据的存储越来越重要。本系统使用JAVA语言,结合实际编写了该设备管理系统,可以实现对数据库的准确操作,完成用户的登录、修改密码、添加用户、删除用户,及设备的添加和删除,设备数据的添加、删除和查询等一系列功能。关键词:设备管理系统数据库技术JDBCSQL语句 1.项目总体规划随着社会生产活动中自动化水平越来越高,设备的监控及其数据的存储越来越重要。数据库技术已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展,在工厂中,为了有效管理各种设备及其在运作过程中产生的数据,开发一个方便高效的管理软件是非常必要的。本系统使用JAVA 语言,结合实际编写了该设备管理系统,可以实现对数据库的准确操作,完成用户的登录、修改密码、添加用户、删除用户,及设备的添加和删除,设备数据的添加、删除和查询等一系列功能。本系统开始运行时首先进入登陆界面,用户输入正确的用户名及密码后进入主窗体,然后通过点击主窗体的各项菜单进入各项功能。2.系统需求分析2.1用户管理基本功能分析系统中用户需要正确的密码才能获得能录权限,登录之后可以进行一系列数据操作。其功能定义如图1所示。修改密码删除用户用户管理添加用户图12.2设备管理基本功能分析设备管理可以实现对设备的添加和删除,其功能定义如图2所示。设备列表删除设备添加设备设备管理 图22.3数据管理基本功能分析数据管理室系统的核心,可以实现对数据的添加、删除及查询,其功能定义如图3所示。数据管理查询数据删除数据添加数据图33.数据库设计本系统使用微软公司的ACCESS数据,数据源名称为”shebei”。根据系统的需求,经过详细的分析设计,本系统数据库中各个数据表的字段定义和说明如下。users(用户信息表),存放注册用户的信息,如表1.表1users字段名称数据类型大小描述username文本50用户名password文本50密码shebeilist(设备列表),存放设备列表,如表2.表2shebeilist字段名称数据类型大小描述id数字(自动编号)4ID号shebeiname文本50设备名称shebei1(设备信息表),名为shebei1的设备的各项数据(程序中每台设备建一个数据表),如表3. 表3shebei1字段名称数据类型大小描述id数字(自动编号)4ID号dianya数字4电压值dianliu数字4电流值zhuangtai文本50状态guzhangcs数字4故障次数4.关键技术和难点4.1数据库连接JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC访问ACCESS有两种方式,一种是JDBC-ODBC桥接式,另一种是ODBC直接方式。本系统使用的是ODBC直接方式。ODBC直接连接方式采用了JDBC直接连接思想。他是在程序中直接指出需要使用的ODBC驱动程序,从而免去了配置数据源的麻烦,提高程序的可移植性。首先需要加载驱动程序,代码如下:try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序错误!"+e);}然后就可以通过数据源连接到数据库,关键代码如下:Connectionconn;Statementstmt;ResultSetrs;Stringurl="jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=shebei.mdb";conn=DriverManager.getConnection(url,"","");stmt=conn.createStatement();rs=stmt.executeQuery("SELEC*FROMuserswhereusername="+"'"+t_name.getText()+"'");rs.close();stmt.close();conn.close();4.2SQL语句的使用 系统开发过程中关键部分是SQL语句的使用。SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL语言包含4个部分: 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。 数据查询语言(DQL),例如:SELECT语句。数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出。例如程序中用到的有:"INSERTINTO"+s+"(dianya,dianliu,zhuangtai,guzhangcs)VALUES("+s1+","+s2+","+s3+","+s4+")""CREATETABLE"+s+"(idCOUNTER(1,1),dianyavarchar(50),dianliuvarchar(50),zhuangtaivarchar(50),guzhangcsINTEGER)""DROPTABLE"+s"DELETEFROMusersWHEREusername="+s1"SELECT*FROMuserswhereusername="+"'"+t_name.getText()+"'""UPDATEusersSETpassword="+s3+"WHEREusername="+s25系统详细设计与实现5.1用户管理设计与实现用户管理中最重要的登陆,此时要核对用户名和密码是否一致。关键代码如下:conn=DriverManager.getConnection(url,"","");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT*FROMuserswhereusername="+"'"+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.setText("");t_pass.setText("");myframe=newMyFrame();this.dispose();break; }else{l_error.setText("用户名或密码错误");until++;}}5.2设备管理设计与实现设备管理模块中添加设备实际上是在数据库中新建一个表,删除设备实质上是删除一个表。添加设备关键代码如下:conn=DriverManager.getConnection(url,"","");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT*FROMshebeilistwhereshebeiname="+"'"+t_name.getText()+"'");if(rs.next()){a1.setText("设备已经存在,添加失败!");}else{Stringtemp="INSERTINTOshebeilist(shebeiname)VALUES("+s1+")";stmt.executeUpdate(temp);Stringtemp1="CREATETABLE"+s+"(idCOUNTER(1,1),dianyavarchar(50),dianliuvarchar(50),zhuangtaivarchar(50),guzhangcsINTEGER)";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+"WHEREidLIKE"+"'"+t_guanjian.getText().trim()+"'");}elseif(s1.equals("电压")){ rs=stmt.executeQuery("SELECT*FROM"+s+"WHEREdianyaLIKE"+"'"+t_guanjian.getText().trim()+"'");}elseif(s1.equals("状态")){rs=stmt.executeQuery("SELECT*FROM"+s+"WHEREzhuangtaiLIKE"+"'"+t_guanjian.getText().trim()+"'");}elseif(s1.equals("故障次数")){rs=stmt.executeQuery("SELECT*FROM"+s+"WHEREguzhangcsLIKE"+"'"+t_guanjian.getText().trim()+"'");}elseif(s1.equals("电流")){rs=stmt.executeQuery("SELECT*FROM"+s+"WHEREdianliuLIKE"+"'"+t_guanjian.getText().trim()+"'");}6项目测试本系统在运行调试的过程中遇到很多错误并进行了大量的调试和改正。1.连接数据库出错,程序中定义了Stringurl="jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=shebei.mdb";而我的数据库access使用的是2007版本的,access后缀为accdb,后缀改为mdb后数据库连接正常。2.使用组件JPasswordField的方法getPassword用于比较识别用户密码是否正确是出错,原因是该方法返回值为cha[],与数据库中密码数据类型(String)不匹配,比较不出来,把JPasswordField换为TextField使用方法getText后问题解决。3.点击菜单后对话框不显示,加入语句setVisible(true)之后问题解决。4.程序中sql语句中表名为变量,语句"CREATETABLEs(idCOUNTER(1,1),dianyavarchar(50),dianliuvarchar(50),zhuangtaivarchar(50),guzhangcsINTEGER)"有错,改为"CREATETABLE"+s+"(idCOUNTER(1,1),dianyavarchar(50),dianliuvarchar(50),zhuangtaivarchar(50),guzhangcsINTEGER)"后问题解决,因为sql语句事实上为一个字符串,变量不能写到引号里,应用加号拼接。5.程序中sql语句中数据类型不匹配,如"SELECT*FROM"+s+"whereid="+t_id.getText(),id数据类型为数字,而t_id.getText()为字符串,改为"SELECT*FROM"+s+"whereid="+Integer.valueOf(t_id.getText()).intValue()),即把String转换为Integer。6.程序中用到下拉菜单,下拉菜单中内容为设备名,可功能中有添加设备的功能,为实现下拉菜单的动态显示,新建了一个表即设备列表,来保存已有的设备名,每次打开下拉菜单是从数据库中读取设备名。 7参考文献1. 《Java毕业设计指南与项目实践》孙更新等编著.科学出版社.2008.32. 《Java基础与实例精解》宾春清李建瑜编著.北京航空航天大学出版社.2009.73. 《Java2实用教程》耿祥义张跃平编著.清华大学出版社.2006.8
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处