




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UNIX 系统与软件开发系统与软件开发课程设计课程设计设计题目:设计题目: 学生管理系统学生管理系统 专专 业:业: 计算机科学与技术计算机科学与技术 指导教师:指导教师: 班班 级:级: 0814102 学学 号:号: 姓姓 名:名: 同同 组组 人:人: 计算机科学与工程学院计算机科学与工程学院 2013 年年 06 月月 26 日日前言前言本系统是使用 java 语言编写的一个简单的 c/s 结构的学生管理系统,服务端运行在 linux 系统,通过 mysql 数据库来存储数据,客服端运行在 windows系统,通过 socket 发送请求给服务端,服务端分析处理后返回结果给客服端。在客
2、户端,客户端的每一次操作都会生成日志文件,在服务端,服务端对客服端每次发送的请求生成日志文件。由于技术以及相关知识的欠缺,本系统只实现了简单的增删改查的功能,其面向的是学生管理员,有增加学生,删除学生等高级权限,因为服务端要同时接受多个客户端的请求,所以服务端做成多线程模式,但也只是简单实现同时能连多个客服端,当多个客户端对同一个数据进行处理时,不会进行线程同步,本人将会在以后的学习中加强相关知识的获取,不断的完善系统现有功能以及增加一些实用的功能。目录目录前言前言.1一、系统环境一、系统环境.1(一)、硬件环境.1(二)、软件环境.1二、设计目的二、设计目的.1三、总体设计三、总体设计.1(
3、一)、功能分析.1(二)、数据库设计.1(三)、系统结构图.2(四)、程序流程图.3(五)、类图.4四、详细设计四、详细设计.5(一)、登录模块.5(二)、客户端操作界面模块.5(三)、服务端模块.6五、调试与测试五、调试与测试.6(一)、登录界面测试.6(二)、操作界面的的测试:.7(三)、服务端模块的测试.11(四)、测试结果的分析:.12(五)、测试中遇到的问题及处理方式.12六、设计中遇到的问题及解决方法六、设计中遇到的问题及解决方法.12(一)、遇到的问题.12(二)、解决方法.13七、源程序清单和执行结果及分析七、源程序清单和执行结果及分析.13(一)、客户端源程序清单.13(二)
4、、服务端源程序清单.22(三)、执行结果.29(四)、执行结果分析:.31八、课程设计心得八、课程设计心得.31参考文献参考文献.34一、系统环境一、系统环境( (一一) )、硬件环境、硬件环境家用计算机,内存 2G,硬盘 80G 以上。( (二二) )、软件环境、软件环境本系统是基于 java JDK1.6 在 window7 系统下用 eclipse 以及在 fedora9系统下用 fedora eclipse 开发,因为使用的开发语言是 java,故系统必须安装有 java 虚拟机。数据库使用 linux 下的 mysql 数据库。二、设计目的二、设计目的当今计算机技术飞速发展,数据库技
5、术作为数据管理的一个有效的手段,在各行各业中得到越来越广泛的应用,然而并不是每个人都会直接操作数据库,面对大量的数据,必须提供一个简单的形象的,可视化的操作界面给数据的管理员,例如,当今各高校的的规模越来越大,学生人数也将增加,而随着人数的增加,也给学校带来了大量数据的增加,这给学校的学籍管理人员在资料的整理,资料的查询,数据的处理上带来很大的不便。开发本系统的目标就是为了减少管理员的工作强度,使得对学生信息的查询和数据处理的速度得到很大程度的提高,从而提高学籍管理员的的工作效率,使管理员的工作系统化,规范化,自动化。同时对这个学期学过的知识通过这次的设计进行实际检测。三、总体设计三、总体设计
6、 ( (一一) )、功能分析、功能分析学生管理系统的主要功能是管理学生的基本信息。由于本人水平有限本系统将只提供五个功能。查询所有学生信息:管理员登录成功后可以查询所有的学生信息。条件查询:按管理员的条件进行查询。增加信息:管理员登录成功后可以添加新学生信息。删除信息:只提供了按学号删除。更新信息:分别提供了更新姓名,更新学号,更新电话。( (二二) )、数据库设计、数据库设计因为本系统较为简单,数据库只建了两张表,一张学生信息表(stuinfo) ,一张用户表(userinfo) ,都存在 studentdb 数据库下。学生信息表存储学生基本信息,包含四个字段:学号(stuID) ,姓名(s
7、tuname) ,性别(sex) ,电话(tel) ;用户表存储学籍管理员用于登录的用户名和密码,只包含两个字段:用户名(name) ,密码(passwd) 。以下是两张表的内容: 表 1 userinfo 表的内容字段名字段描述数据类型主键非空name用户名Varchar(15)YesYespasswd密码Varchar(20)NoYes 表 2 stuinfo 表的内容字段名字段描述数据类型主键默认值stuname姓名Varchar(10)NoNullstuID学号Varchar(15)YesNullsex性别Char(5)NoNulltel电话Varchar(11)NoNull( (三三
8、) )、系统结构图、系统结构图登录界面面学生管理系统界面查询信息增加信息删除信息更新信息退出系统按姓名查询按学号查询更新姓名gengxin更新学号gengxin更新电话gengxin 图 1( (四四) )、程序流程图、程序流程图开 始用户名密码登录成功操作界面操作类型查 询增 加删 除更 新类型类型按姓名按学号操作成功更姓名更学号更电话退出系统结束NYYN 图 2( (五五) )、类图、类图1、系统类概述:系统包含 9 个类,客户端包含五个类,服务端包含 4 个类,各类中包含的方法以及说明如下:Client 类: stuServer 类:public void menue()public v
9、oid queryStu()public void queByName()public void queByID()public void queAll()public void addStu()public void delStu()public void updStu()public void updByNa()public void updByID()public void updByTel()public static void main() 图 3 图 4Clien 工具类: stuServer 线程类以及操作类:class Student;calss Input;class stu
10、Clientclass logFileclass ServerTreadcalss connStuclass StudentBizclass sLogFile 图 5 图 6客户端类:Client 类是界面的实现以及发送信息的主类,Student 类是实体类,Input 是获取键盘输入类,stuClient 类是连接服务器类,logFile 类是生成日志文件类。服务器类:stuServer 类是主服务器类,ServerTread 类是服务器线程类,connStu 类是连接数据库以及执行 sql 语句类,StudentBiz 类是生成 sql语句类;sLogFile 类是生成日志文件类。2、类的
11、调用关系 :客户端:首先启动登录类 Client 类,其调用输入类 Input 获取从键盘输入的用户名和密码,然后调用连接服务器类 stuClient 连接服务器,在服务器校验用户名密码正确后调用 Client 类显示操作界面,在操作界面操作时 Clien类调用 Input 获取输入的信息然后调用 stuClient 类通过 Socket 连接服务器发送信息。每一步操作都将调用 logFlie 类生成日志文件。服务器:启动 stuServer ,当有用户连接时调用 ServerTread 类接受连接以获取客户端发来的信息,对信息校验是否能处理,能处理则调用SudentBiz 类生成相关 sql
12、 语句,StudentBiz 类生成 sql 语句后调用 connStu类的连接数据库方法和执行 sql 语句的方法,获取结果返回给 Server,Server再通过 Socket 发给客户端。客服端的每一次请求都会调用 sLogFile 类生成日志文件,调用关系如下:logFile stuClient Intput Client StudentBiz ServerThread connStustuServer StudentSocket注:单箭头表示调用,双箭头表示注:单箭头表示调用,双箭头表示 Socket 传输数据传输数据sLogFile 图 7 调用关系图四、详细设计四、详细设计( (
13、一一) )、登录模块、登录模块登录界面有两个功能选项,一是登录,二是退出,这里只写一个初始化函数,实现的功能是给用户提供登录界面,若不想登录则按退出,若登录,则输入用户名密码,正确后调用客户端操作界面。( (二二) )、客户端操作界面模块、客户端操作界面模块该模块给用户提供系统功能的操作界面,有 5 个功能,分别是增加学生信息,查询学生信息,删除学生信息,更新学生信息和退出系统。其中查询学生信息分为按学号和按姓名查找和全部查找,更新学生信息分为更新姓名,更新学号和更新电话。对每个功能都分别写出对应的方法,个功能对应的方法如下:查询学生信息:queryStu();queByName();queB
14、yID();queAll();增加学生信息:addStu();删除学生信息:delStu();更新学生信息:updStu();updByNa();updByID();updByTel();( (三三) )、服务端模块、服务端模块该模块主要给客户端提供各种服务,用一个服务器线程类循环监听是否有客户端的请求,因为要对数据库进行操作,所以创建了两个工具类,一个是根据客户端发来的请求而生成 sql 语句的 StudentBiz 类一个是连接数据库和执行StudentBiz 类生成的 sql 语句的 connStu 类。其中 StudentBiz 类的方法是根据客服端具有的功能而建立的方法;服务端模块工
15、具类的方法如下:StudentBiz 类:public boolean checkUser(String name,String passwd)检查用户;public ResultSet readAll()从数据库中读取所有记录;public ResultSet readByName(String name)按姓名从数据库中读取记录;public ResultSet readByID(String ID)按学号从数据库中读取记录;public boolean insertData(String name,String id,String sex,String tel)向数据库中插入一条记录。p
16、ublic boolean delData(String ID)按学号删除数据库中一条记录;public boolean updDataByName(Stirng name)更新数据库中某记录的姓名public boolean updDataByTel(String newTel,String tel) 更新数据库中某记录的电话connStu 类:connStu();连接数据库public ResultSet queryStu(String sql)执行查询语句;public boolean updateStu(String sql)执行 insert,delete,update 语句;pub
17、lic void conClose()关闭数据库连接;五、调试与测试五、调试与测试( (一一) )、登录界面测试、登录界面测试登录界面测试提供了以下几组测试方式:1、输入的用户名或密码为空的情况: 2、输入的用户名或密码错误的情况:3、输入的用户名和密码正确的情况:( (二二) )、操作界面的的测试:操作界面的的测试:操作界面主要测试当输入正确的信息后相应的功能页面是否能正确显示和输入错误的信息后能否正常处理:1、增加学生信息功能页面的测试:(1)输入正确信息:(2)输入错误信息:2、查询功能页面的测试:(1)输入正确信息:(2)输入错误信息:3、删除功能页面的测试:4、更新学生信息页面的测试
18、:(1)输入正确的信息:( (三三) )、服务端模块的测试、服务端模块的测试服务端主要测试是否能正常启动和接受客户端的请求而建立连接。1、启动服务端:2、与客服端建立连接:3、建立完成后主线程继续监听是否有客户端连接:( (四四) )、测试结果的分析:、测试结果的分析:综合测试下来,系统具有的相关功能页面在输入正确和错误信息都都能给用户做出正确显示和提示,由于测试数据少,可能还有些 bug 没有检测到,只好等到实际应用出现时再修复。( (五五) )、测试中遇到的问题及处理方式、测试中遇到的问题及处理方式1、遇到的问题:在测试客户端登录界面时遇到了两个问题,一是没有对当输入的用户名和密码为空时的
19、处理,二是当服务端没有开启,客服端登录时抛出的ConnectException:异常。三是在机房实际应用测试时配置 calsspath 变量错误导致程序运行中断。2、解决方法:第一个问题好解决,在 client 类中增加检测用户名和密码为空时返回登录界面的代码。第二个问题开始我认为是没有 catch 住这个 ConnectException:异常,可是当我在 catch 中增加这个异常时编译不能通过。只能这样做:要使用客户端之前必须先开启服务端。第三个问题在指导老师邵国金老师的帮助下正确配置了 classpath 变量,具体为:# export CLASSPATH=usr/share/java
20、/mysql-connector-java.jar。六、设计中遇到的问题及解决方法六、设计中遇到的问题及解决方法( (一一) )、遇到的问题、遇到的问题在设计中遇到了很多问题,在这里提一下主要的:客户端一次发送多个数据的问题,因为 socket 的 getOutputStream 和getInputSream 方法都只能用一次,不能多次调用该方法,这就造成如果户端一次需要发送多个数据比如用户名和密码,增加学生信息时,学生的四个属性值,怎么才能一次发送过去而能让服务端理解你所需要的是什么服务。服务端查询结果后一次返回学生所有信息的问题,比如查询到某学生的信息后要把这些信息返回给客户端且要让客户端
21、知道那个数据代表什么信息。数据库返回结果后用什么变量或者容器去接收。客户端到底是要做成连一次后就可以进行各种操作直到断开,还是每操作一次连一次。( (二二) )、解决方法、解决方法1、一次发送多个数据问题可以和服务端建立一个协议,把发送的多个数据间用“, ”隔开,并在数据的开头增加操作的标识。在打包发给服务器,服务器在根据协议对数据进行遇到“, ”就拆分。2、原理如(1)客户端和服务端先商定协议,规定发送的数据顺序按照姓名,学号,性别,电话的顺序进行打包。3、开始时想用 list 集合去装,可是由于对 list 的使用不是很熟悉,还是用 resultSet 去装。然后服务端循环每拆封一个就往客
22、户端发一次。4、为了降低服务器的处理压力和节约资源,设计成需要操作的时候再连接,操作完就断开,在操作时才又一次连接。七、源程序清单和执行结果及分析七、源程序清单和执行结果及分析( (一一) )、客户端源程序清单、客户端源程序清单1、Client 类:import java.io.*;import .*;public class Client /private BufferedReader bf;stuClient sc=new stuClient();Input in=new Input();Student stu=new Student();private String recInfo;/用
23、来接收服务端返回的数据;private String choNum;/选择子菜单的数字public void menue()System.out.println(=);System.out.println( 欢迎使用本系统,请按数字键选择相应功能);System.out.println( 1-增加学生信息);System.out.println( 2-查询学生信息);System.out.println( 3-删除学生信息);System.out.println( 4-修改学生信息);System.out.println( 5-查询所有学生信息);System.out.println( 6-退
24、出系统);System.out.println(=);choNum=in.getString();if(1.equals(choNum)addStu();else if(2.equals(choNum)queryStu();else if(3.equals(choNum)delStu();else if(4.equals(choNum)updStu(); else if(5.equals(choNum)queAll();else if(6.equals(choNum)System.out.println(退出本系统);System.out.println(欢迎下次继续使用本系统);System
25、.exit(0);elseSystem.out.println(没有与+choNum+对应的功能,请继续关注我们的产品, +现在将返回主界面);menue(); /查询方式public void queryStu()System.out.println(=);System.out.println( 请选择查询方式);System.out.println( 1-按姓名查找);System.out.println( 2-按学号查找);System.out.println( 3-返回上一层);System.out.println(=);trychoNum=in.getString();if(1.eq
26、uals(choNum)queByName();else if(2.equals(choNum)queByID();else if(3.equals(choNum)menue();elseSystem.out.println(没有与+choNum+对应的功能,请继续关注我们的产品 +现在将返回);queryStu();catch(Exception e)e.printStackTrace();finallysc.closeSocket();/按姓名查找public void queByName()System.out.println(=);System.out.println( 查询学生信息页
27、面);System.out.println(=);System.out.println( 请输入你要查找学生的姓名:);=in.getString();sc.initSocket();sc.pwOut.println(queryNa+,+);recInfo=sc.bufIn.readLine();System.out.println(recInfo);if(false.equals(recInfo)System.out.println(你要查找的姓名为++的学生不存在);queryStu();elseString ary =recInfo.
28、split(,);System.out.println(你所查询的结果为:);stu.fromatPrint(ary0,ary1,ary2,ary3);/调用 Student类的格式化输出方法queryStu();catch(Exception e)e.printStackTrace();finallysc.closeSocket();/按学号查找public void queByID()System.out.println(=);System.out.println( 查询学生信息页面);System.out.println(=);System.out.println( 请输入你要查找学生的
29、学号:);trystu.id=in.getString();sc.initSocket();sc.pwOut.println(queryID+,+stu.id);recInfo=sc.bufIn.readLine();if(false.equals(recInfo)System.out.println(你要查找的学号为+stu.id+的学生不存在);queryStu();elseSystem.out.println(recInfo);String ary =recInfo.split(,);System.out.println(你所查询的结果为:);stu.fromatPrint(ary0,a
30、ry1,ary2,ary3);/调用 Student类的格式化输出方法queryStu();catch(Exception e)e.printStackTrace();finallysc.closeSocket();/查询所有public void queAll()trysc.initSocket();sc.pwOut.println(queryAll);recInfo=sc.bufIn.readLine();System.out.println(recInfo);menue();catch(Exception e)e.printStackTrace();finallysc.closeSock
31、et();/增加信息public void addStu()System.out.println(=);System.out.println( 增加学生信息页面);System.out.println( 增加学生信息);System.out.println( 请按如下格式来输入信息);System.out.println( 姓名,学号,性别,电话);System.out.println(=);System.out.println( 请输入新增学生信息:按 e 返回上一层);try/获取键盘录入的学生信息,用于发送给服务器String sendInfo=in.getString();if(e.e
32、quals(sendInfo)menue();elseString check=sendInfo.split(,);/用于检查输入的信息是等于 4 来判断输入是否有效/ 如果输入有效则发往服务器if(check.length=4)sc.initSocket();sc.pwOut.println(add+,+sendInfo);recInfo=sc.bufIn.readLine();if(false.equals(recInfo)System.out.println(插入失败,用户已存在或者插入的数据类型不匹配);elseSystem.out.println(recInfo);menue();e
33、lseSystem.out.println(你输入的格式错误请查看输入格式后,重新输入!);addStu();catch(Exception e)e.printStackTrace();finallysc.closeSocket();/删除信息public void delStu()System.out.println(=);System.out.println( 删除学生信息页面);System.out.println(=);System.out.println( 请输入要删除的学生学号:);trystu.id=in.getString();sc.initSocket();sc.pwOut.
34、println(delete+,+stu.id);recInfo=sc.bufIn.readLine();System.out.println(recInfo);menue();catch(Exception e)e.printStackTrace();finally/更行操作public void updStu()System.out.println(=);System.out.println( 请选择更新的内容);System.out.println( 1-更新姓名);System.out.println( 2-更新学号);System.out.println( 3-更新电话);Syste
35、m.out.println( 4-返回上一层);System.out.println(=);System.out.println( 请输入要更新的的选项:);String cho=in.getString();/选择功能选项if(1.equals(cho)updByNa();else if(2.equals(cho)updByID();else if(3.equals(cho)updByTel();else if(4.equals(cho)menue();elseSystem.out.println(你输入的格式错误请查看输入格式后,重新输入!);updStu(); /更新姓名public v
36、oid updByNa()System.out.println(=);System.out.println( 更新页面);System.out.println( 按 e 退出);System.out.println(=);System.out.println( 更新格式:新内容,旧内容);System.out.println( 请输入你要更新学生的姓名:);=in.getString();if(e.equals()updStu();elseString check=.split(,);if(check.length=2)sc.initSoc
37、ket();sc.pwOut.println(uptateNa+,+);recInfo=sc.bufIn.readLine();System.out.println(recInfo);menue();elseSystem.out.println(你输入的格式错误请查看输入格式后,重新输入!);updByNa();catch(Exception e)e.printStackTrace();finally/更新 IDpublic void updByID()System.out.println(=);System.out.println( 更新页面);System.out.prin
38、tln( 按 e 退出);System.out.println(=);System.out.println( 更新格式:新内容,旧内容);System.out.println( 请输入你要更新学生的学号:);trystu.id=in.getString();if(e.equals(stu.id)updStu();elseString check=stu.id.split(,);if(check.length=2)sc.initSocket();sc.pwOut.println(uptateID+,+stu.id);recInfo=sc.bufIn.readLine();System.out.p
39、rintln(recInfo);menue();elseSystem.out.println(你输入的格式错误请查看输入格式后,重新输入!);updByID();catch(Exception e)e.printStackTrace();finally/更新电话public void updByTel()System.out.println(=);System.out.println( 更新页面);System.out.println(=);System.out.println( 更新格式:新内容,旧内容);System.out.println(请输入你要更新学生的电话:);trystu.te
40、l=in.getString();if(e.equals(stu.tel)updStu();elseString check=stu.tel.split(,);/检查输入的字符串长度是否为 2 来判断数据是否有效if(check.length=2)sc.initSocket();sc.pwOut.println(uptateTel+,+stu.tel);recInfo=sc.bufIn.readLine();System.out.println(recInfo);menue();elseSystem.out.println(你输入的格式错误请查看输入格式后,重新输入!);updByTel();
41、catch(Exception e)e.printStackTrace();finally/*public static void main(String ags)new Client().menue();*/2、stuClien 类:import java.io.*;import .*;public class stuClient Socket socket=null;BufferedReader bufIn=null;PrintWriter pwOut=null;public void initSocket()/实例化 Socket 相关对象String hosthome=127.120.
42、55.1;int port=10001;try Socket socket=new Socket(hosthome,port);bufIn=new BufferedReader(new InputStreamReader(socket.getInputStream();pwOut=new PrintWriter(socket.getOutputStream(),true);catch (UnknownHostException e) System.out.println(未知主机,请检查主机名或 ip 地址是否正确);/ TODO Auto-generated catch block/e.pr
43、intStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();public void closeSocket()/关闭 Socket 相关对象try bufIn.close();pwOut.close();socket.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();3、Input 类:import java.io.BufferedReader;impor
44、t java.io.InputStreamReader;class Inputprivate static BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in);public static String getString()String str=null;trystr = bufr.readLine(); catch(Exception e)System.out.println(Input Wrong!);return str;4、stuLogin 类:import java.io.*;public c
45、lass stuLogin String name=null;public static void main(String ags)new stuLogin().init();public void init()System.out.println(=);System.out.println( 学生管理系统登录界面);System.out.println( 1-登录);System.out.println( 2-退出);System.out.println(=);String cho=Input.getString();if(1.equals(cho)System.out.println( 请
46、输入用户名:);name=Input.getString();System.out.println(name);System.out.println( 请输入用密码:);Console cons=System.console();char pas=cons.readPassword();String passwd=;for(int x=0;xpas.length;x+)passwd+=pasx;if(.equals(name)|.equals(passwd)System.out.println(用户名或密码为空,请重试!);init();elsestuClient sc=new stuClie
47、nt();sc.initSocket();sc.pwOut.println(checkUser+,+name+,+passwd);tryString info=sc.bufIn.readLine();/System.out.println(info);if(true.equals(info)System.out.println(验证成功!);new Client().menue();elseSystem.out.println(用户名或密码错误,请重试);init();System.exit(0);catch(Exception e)e.printStackTrace();finallytry
48、sc.closeSocket();catch(Exception e)e.printStackTrace();else if(2.equals(cho)System.exit(0);elseSystem.out.println(输入的格式不正确,登录请输入 1,退出请输入2);init();(5)Student 类:public class Student public String name;public String id;public String sex;public String tel;public String newName;public String newId;public
49、 String newTel;public void fromatPrint(String id,String name,String sex,String tel)System.out.println(=);System.out.println( 学号 姓名 性别 电话 );System.out.println(id+ +name+ +sex+ +tel);System.out.println(=);( (二二) )、服务端源程序清单、服务端源程序清单1、stuServer、ServerThread 类:import .*;import java.sql.ResultSet;import j
50、ava.io.*;import java.util.Date;import java.text.SimpleDateFormat;public class stuServer public static void main(String ags)throws ExceptionServerSocket ss=new ServerSocket(10001);System.out.println(server start;waiting for user connect);/循环监听是否有客户端连接while(true)Socket s=ss.accept();new Thread(new Ser
51、verThread(s).start();class ServerThread implements Runnable private Socket s;StudentBiz stb ;ResultSet Rs;UserThread(Socket s)this.s=s;/publicpublic void run()SimpleDateFormat df=new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String sbf=df.format(new Date();String ip=s.getInetAddress().getHostAddress();S
52、tring name=;tryBufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream();String info=bufIn.readLine();/接受客户端发来的请求PrintWriter out =new PrintWriter(s.getOutputStream(),true);/System.out.println(info);String ary =info.split(,);/System.out.println(ary0);/System.out.println(ary1);/
53、执行 by name 查询if(checkUser.equals(ary0)System.out.println(sbf+nuser:+ary1+ conneted! ipAddress:+ip);/显示是哪个用户登录name=ary1;/记住登录服务器的用户stb=new StudentBiz();boolean flag=stb.checkUser(ary1,ary2);if(flag)out.println(true);elseout.println(false);trys.close();stb.closeConn();/关闭数据库连接catch(Exception e1)System
54、.out.println(connection close failure);if(queryNa.equals(ary0)System.out.println(sbf+nuser:+name+operation type +ary0);/显示哪个用户在做什么操作stb=new StudentBiz();Rs=stb.readByName(ary1);if(!stb.readByName(ary1).next()System.out.println(This user not exit);out.println(false);while(Rs.next()out.println(Rs.getS
55、tring(1)+,+Rs.getString(2)+,+Rs.getString(3)+,+Rs.getString(4);System.out.println(send ok);trys.close();stb.closeConn();/关闭数据库连接catch(Exception e1)System.out.println(connection close failure);/执行 by ID 查询if(queryID.equals(ary0)System.out.println(sbf+nuser:+name+operation type +ary0);stb=new StudentB
56、iz();Rs=stb.readByID(ary1);if(!stb.readByID(ary1).next()System.out.println(This user not exit);out.println(false);while(Rs.next()out.println(Rs.getString(1)+,+Rs.getString(2)+,+Rs.getString(3)+,+Rs.getString(4);System.out.println(send ok);trys.close();stb.closeConn();/关闭数据库连接catch(Exception e1)Syste
57、m.out.println(connection close failure);if(queryAll.equals(ary0)System.out.println(sbf+nuser:+name+operation type +ary0);/显示哪个用户在做什么操作stb=new StudentBiz();Rs=stb.readAll();if(!stb.readAll().next()System.out.println(select succeed);out.println(This user not exit);while(Rs.next()out.println(Rs.getStri
58、ng(1)+,+Rs.getString(2)+,+Rs.getString(3)+,+Rs.getString(4);System.out.println(send ok);trys.close();stb.closeConn();/关闭数据库连接catch(Exception e1)System.out.println(connection close failure);/执行增加信息if(add.equals(ary0)System.out.println(sbf+nuser:+name+operation type +ary0);/显示哪个用户在做什么操作stb=new Student
59、Biz();boolean flag;/接收 insertData()方法返回的值flag=stb.insertData(ary1,ary2,ary3,ary4);/System.out.println(flag);if(flag=true)System.out.println(insert succeed);/out.println(insert succeed);/elseSystem.out.println(error! insert failure);out.println(false);/插入失败时返回 false 给客户端trys.close();stb.closeConn();/
60、关闭数据库连接catch(Exception e1)System.out.println(connection close failure);/执行删除操作if(uptateNa.equals(ary0)System.out.println(sbf+nuser:+name+operation type +ary0);/显示哪个用户在做什么操作stb=new StudentBiz();boolean flag;/接收 updData()方法返回的值flag=stb.updDataByName(ary1,ary2);/第一个是新内容,第二个是要替换的内容if(flag=true)out.print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度孔萍离婚协议中离婚后子女监护权及教育保障协议
- 二零二五年度交通事故车辆维修质量监控与索赔协议
- 2025版能源行业竞业保密协议范本
- 二零二五年度果园水资源管理承包服务协议
- 2025年基本公共卫生服务项目全员培训试题及答案
- 智能网联汽车的V2X技术考核试题及答案
- 2025国家基本公共卫生服务考试试题+答案
- 2025-2030中国蒸汽凝水回收器行业市场运营模式及未来发展动向预测报告
- 工程基础法律知识培训课件
- 工程商务基础知识培训课件
- 甲状腺术后出院健康宣教
- 现场施工环境保护应急预案
- 施工现场临电方案
- 防汛设备租赁合同
- FKYXII温控旋流风口
- 《共情的力量》课件
- 《实验数据分析方法》课件
- 反家庭暴力法演示课件
- 《小鸭子学游泳》
- 钢面镁质风管施工方案
- 洗衣店营销推广与发展策略分析
评论
0/150
提交评论