




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-2"\h\z\u第1章概述11.1系统目的和意义11.2系统开发环境11.3系统开发模式及基本功能1第2章系统设计32.1系统的模块划分32.2数据库设计4第3章系统的详细设计及实现63.1数据库底层访问类63.2登录模块83.3后台管理系统首页面导航103.4教师信息管理113.5论著信息管理203.6科研项目信息管理283.7前台浏览模块35结论43参考文献44第1章概述1.1系统目的和意义教师信息管理系统是一所院校在各种信息管理中的一部分,对于学校管理者来说是很重要的,所以所设计的系统应该能为管理者提供教师的基本信息管理手段和一些方便的查询方式。本次课程设计的题目是“基于MVC模式的教师信息管理系统”的设计与实现,该设计是对本学期前八周所学的JSP程序设计课程的巩固和深入应用,同时结合Java语言、JSP技术进行Web程序设计,利用前面学过的知识和上网学习来解决实际问题,锻炼解决问题的能力和动手编程的能力。同时使用目前企业实际开发中比较成熟的MVC模式进行系统的整体架构设计,有效分离模块、功能之间的代码耦合关系,并逐步理解软件开发步骤和软件工程思想[1]。1.2系统开发环境本系统采用Browser/Server体系结构系统开发环境开发平台:MyEclipseGA开发语言:JSP、Java数据库:MicrosoftSQLServer2005系统运行环境客户端:浏览器:IE6.0服务器端:数据库:MicrosoftSQLServer2005应用程序系统1.3系统开发模式及基本功能本系统是基于MVC模式设计和开发的,MVC模式包括模型(Model)JavaBean代表应用程序和业务逻辑。视图(View)JSP提供可交互的客户界面,向客户显示模型数据。控制器(Controller)Servlet根据客户的请求来操纵模型,并把结果经由视图展现给客户[2]。MVC优点:代码的重用性,有利于开发的分工各司其职、互不干涉。MVC编程思路:Servlet接受客户端请求,并调用业务类的方法进行数据处理,Servlet根据数据处理的结果,控制下一个显示的HTML或者JSP页面。基于MVC模式的教师信息管理系统主要实现前台和后台两部分功能设计,其中前台主要实现教师登录的浏览和查询功能,其中,主要是全部教师信息的分页浏览,全部教师论著的分页浏览,全部科研项目的分页浏览。后台主要实现管理员登录后的添加、删除、修改、查询和批量删除功能,其中,主要是教师基本信息的添加、删除、修改、批量删除以及按编号和教师姓名的多条件查询和浏览,其次论著信息的添加、删除、修改、批量删除以及按编号和教师姓名的多条件查询和浏览,最后是科研项目信息的添加、删除、修改、批量删除以及按编号和教师姓名的多条件查询和浏览。第2章系统设计2.1系统的模块划分教师信息管理系统是一种通常由管理员管理、维护,可以让教师查询、浏览的网站。教师的信息通常教师工号,以正序方式由小到大排列展示出来。经过需求分析,教师信息管理系统主要包括以下几个功能模块:1、登录模块模块功能详细介绍:教师和系统管理员进行登录操作,拥有不同的权限和功能。2、教师信息管理模块模块功能详细介绍:对教师信息进行增删改查操作。3、论著信息管理模块模块功能详细介绍:对教师论著信息进行管理。4、科研项目管理模块模块功能详细介绍:对教师的科研项目进行管理。系统功能模块图如下图2-1所示:教师信息管理系统教师信息管理系统用户登录管理教师信息管理论著信息管理科研项目管理教师登录管理员登录论著信息维护论著信息查询项目信息维护项目信息查询教师信息查询教师信息维护图2-1系统功能模块图2.2数据库设计数据库管理系统是允许用户在计算机上建立、使用和维护数据库,增加、修改、删除、排序和检索数据库中的数据,并使用数据库中的数据创建表格和报表的软件系统。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。数据库的设计是整个系统成败的一个重要环节。合理的数据库设计能够给系统带来很好的效率。而且能够使得各个功能模块的设计变得非常简单而且模块间的关系特别明确。本系统的数据库是在SQLServer2005中创建的[3]。根据前面的分析,教师信息管理系统数据库共包含4个表,包括用户信息表(T_user)、教师信息表(T_teacher)、论著信息表(T_lunzhu)、科研项目信息表(T_keyan)。用户信息表表2-1所示是用户信息表结构,用于记录用户基本信息,包括账号、密码、用户类型。表2-1用户信息表列名说明数据类型约束id用户账号nvarchar(20)主键psw用户密码nvarchar(20)非空userType用户类型nvarchar(10) 非空教师信息表表2-2是教师信息表结构,用于记录教师信息,包括教师基本信息和院系信息等。表2-2教师信息表列名说明数据类型约束id教师工号nvarchar(20)主键name教师名nvarchar(20)非空password密码nvarchar(20)非空gender性别nvarchar(20)非空department所在院系nvarchar(20)jurisdiction权限nvarchar(20)论著信息表表2-3是论著信息表结构,用于记录教师论著信息,包括论著编号、论著书名、出版社等。表2-3论著信息表列名说明数据类型约束id论著编号nvarchar(20)主键name论著书名nvarchar(20)非空press出版社nvarchar(20)Tid教师编号nvarchar(20)科研项目信息表表2-4是科研项目信息表结构,用于记录教师科研项目信息,包括项目编号、项目名称等。表2-4科研项目信息表列名说明数据类型约束id项目编号nvarchar(20)主键name项目名称nvarchar(20)非空Tid教师编号nvarchar(20)以上就是教师信息管理系统所需的数据表,按照这些表结构设计,在MicrosoftSQLServer2005中创建数据库Teacher,并创建相应的表。第3章系统的详细设计及实现3.1数据库底层访问类本系统的设计使用基于Servlet的MVC架构模式,将系统的各个功能的实现过程严格的划分为视图(View)、控制(Controller)、模型(Model),其中View负责界面的显示,Controller负责请求的转发和响应,Model负责逻辑业务对象实体和业务实体。由于本系统是一种信息管理系统,在这三层之下,还要建立数据库访问层,该层完成数据库的连接、SQL语句的具体执行等操作。这一层由MVC模式中的Model层里的业务实体进行调用,从而完成逻辑业务的信息维护操作。JDBC数据库访问技术JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。系统与数据库的连接需要的准备工作,下载JDBC驱动包,将驱动包复制到TeacherManager\WebRoot\WEB-INF\lib文件夹下。完成导入驱动包[4]。添加DBManager公共类首先创建包nepu.ldz.tools,在该包下创建名为DBManager的类,该类得职责用于提供访问、操作数据库的公共方法。添加公共类的方法和步骤如下:在工程中的包名上点右键,选择【New】—>【Class】菜单项,将弹出【NewJavaClass】对话框,保留默认的选择,在Name文本框中输入DBManager,点击Finish按钮。编写公共方法小节为项目添加了一个DBManager类,该类用于存放连接、操作数据库的公共方法,本小节介绍如何编写这些公共方法。首先为DBManager类声明几个公共变量,其中conn为数据库连接对象,rs为结果集对象,stmt用于向数据库发送要执行的SQL语句,路径uri,用户名sa,密码123456。1、数据库连接方法getConnection()先加载数据库连接驱动,然后获取数据库连接,然后进行判断,检查是否获取数据库连接成功,并且捕获加载数据库驱动的异常和获取连接的异常。getConnection方法的关键代码如下:privateConnectiongetConnection(){ try{ //加载数据连接驱动rver.jdbc.SQLServerDriver"); //获取数据库连接 conn=DriverManager.getConnection(uri,user,password); if(conn!=null) System.out.println("数据库连接成功"); }catch(ClassNotFoundExceptione){ System.out.println("数据库驱动加载错误"); }catch(SQLExceptione){ System.out.println("获取连接错误"); } returnconn; }2、数据库查询方法executeQuery()先建立Statement对象,再建立ResultSet(结果集)对象,并执行传参过来的SQL语句,并且捕获SQL语句执行的异常。executeQuery方法的关键代码如下:publicResultSetexecuteQuery(Stringsql){ try{ stmt=conn.createStatement(); rs=stmt.executeQuery(sql); }catch(SQLExceptione){ System.out.println("sqlexecutefailure"); e.printStackTrace(); } returnrs; }3、数据库增删改的操作方法executeUpdate()先建立Statement对象,再建立ResultSet(结果集)对象,并执行传参过来的SQL语句,并且捕获SQL语句执行的异常。executeUpdate方法的关键代码如下:publicintexecuteUpdate(Stringsql){try{stmt=conn.createStatement();returnstmt.executeUpdate(sql);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}return0;}3.2登录模块登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。本节首先严格按照MVC架构模式为教师信息管理系统制作了一个简单的登录模块,登录分为两个权限登录,分别是普通教师登录和管理员登录,管理员登录成功后,应当进入该系统的后台管理系统,普通教师登录成功之后,应当进入该系统的前台管理系统。因此本节还详细介绍了主窗体的设计。按照MVC模式进行构建登录功能的开发,对该模块的文件构建说明如下(1)Model层:在nepu.ldz.model包中添加用户类别的实体Javabean,类名为Usermodel。在nepu.ldz.DAO包中添加业务Javabean,类名为UserDAO。其中Usermodel类包含3个属性,分别是ID、密码和权限,同时在该类中添加属性的set、get方法,User类的属性定义部分代码如下:publicclassUsermodel{ privateStringUid=""; privateStringUpsw=""; privateStringUtype="";……}(2)Controller层:在nepu.ldz.Servlet中添加类UserServlet,该servlet主要负责登录以及管理员相关操作的流程控制。(3)View层:在Webroot文件夹下添加名为login.jsp的JSP文件。View层构建首先在MyEclipse的项目的WebRoot目录中建立JSP页面,在该页面中编写表单代码,其中注意表单的action属性为该表单信息提交的服务端URL地址,method属性为提交方式。在这里由于是按照MVC模式,将信息提交给Servlet,因此method必须post。同时为避免复杂的URL的路径逻辑关系,统一使用绝对路径。图3-1登录界面设计Model层构建在业务Javabean类UserDAO中建立方法login(),实现过程中借助DBManager数据库底层操作类,实现用户登录的判断。该方法需要接收由servlet传递过来3个参数,一个是用户名name,另一个是密码password,最后是权限state,调用DBManger数据库底层操作类的executeQuery()方法实现sql查询,sql语句如下:Stringsql="select*fromT_userwhereid='"+name+"'andpsw='"+password+"'anduserType='"+state+"'";实例化DBManager,调用executeQuery()方法,对数据库中的信息进行查询,代码如下:DBManagerdb=newDBManager(); ResultSetrs=db.executeQuery(sql);判断是否查询出结果,如果rs.next是空,则没有此权限此人信息,如果rs.next有结果则t=1,传给servlet使其获得结果,并知道此权限此人信息,代码如下:if(rs.next())return1; returnt;Controller层构建在UserServlet添加方法Login(),在该方法中完成登录的逻辑判断。首先需要通过方法request.getParameter()来接收由login.jsp页面传递过来的参数编号(name)、密码(password)和权限(state),在进行必要的参数转码或合法性判定后调用Model层的业务javaBeanUserDAO的登录方法实现登录判定,登录成功后需要注意将用户名用session进行存储,这样,在用户多次请求和响应之后都可以由session中取出用户名展示或判断用户是否登录。最后,在servlet中使用response.sendRedirect()方法跳转到管理后台的首页面。UserServelt中的Login()方法关键代码如下: Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312"); Stringpassword=request.getParameter("password"); Stringstate=newString(request.getParameter("state").getBytes("ISO-8859-1"),"GB2312"); if(state.equals("1")){state="普通教师";} else{state="管理员";} UserDAOuserDAO=newUserDAO(); intt=userDAO.login(name,password,state); Sessionsession=request.getSession(); session.setAttribute("name",name); if(t==1){ session.setAttribute("username",name); if(state.equals("普通教师")){response.sendRedirect("front/FrontIndex.jsp");} if(state.equals("管理员")){response.sendRedirect("admin/AdminIndex.jsp");} }else{ response.sendRedirect("login.jsp?operate=faile");}t=1时,判断用户权限,普通教师跳转到front/FrontIndex.jsp页面,管理员跳转到admin/AdminIndex.jsp页面。否则跳转回到login.jsp页面。3.3后台管理系统首页面导航整个教师信息后台管理系统的界面设计是左侧导航的结构,如图3-2所示,系统几乎所有的jsp页面都具有大致类似的页面结构和风格,例如,相同的页面头部、左侧导航和页脚,因此,为了页面编码的方便和代码的可重用性,系统设计了一些公用的页面文件,主要包括AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp,通过include指令标记将AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp嵌入到AdminIndex.jsp页面中,这样,编码工作将主要集中在左侧导航AdminLeft.jsp和AdminIndex.jsp页面。其他新增的功能页面的设计思路类似,在这里就不再赘述了。AdminIndex.jsp界面的浏览效果如图3-2所示:图3-2后台管理首页面浏览效果3.4教师信息管理教师信息管理是教师信息管理系统的主要模块,其中包括对教师信息的浏览,添加,修改,删除,查询,批量删除的功能。以便于管理员对教师信息的维护和修改。按照MVC模式对该模块进行功能的开发,对该模块的文件构建说明如下(1)Model层:在nepu.ldz.model包中添加教师类别的实体Javabean,类名为Teachermodel。在nepu.ldz.DAO包中添加业务Javabean,类名为UserDAO。其中Teachermodel类包含6个属性,分别是编号、姓名、密码、性别、所属院系和权限,同时在该类中添加属性的set、get方法,Teachermodel类的属性定义部分代码如下:publicclassTeachermodel{ privateStringTid=""; privateStringTname=""; privateStringTpassword=""; privateStringTgender=""; privateStringTdepar=""; privateStringTjur="";……}(2)Controller层:在nepu.ldz.Servlet中添加类UserServlet,该servlet主要负责有关教师信息操作请求和响应。(3)View层:在Webroot文件夹下添加名为admin的文件夹,并建立TeacherList.jsp、AddTeacher.jsp、UpdateTeacher.jsp、SelectTeacher.jsp四个页面。添加教师信息1、View层构建用于添加教师信息的AddTeacher.jsp设计如图3-3所示,输入教师编号,姓名,密码,性别,所在院系和权限。点击保存按钮,即可完成教师信息的添加。图3-3教师信息添加界面2、Model层构建在业务Javabean的UserDAO中添加方法Addteacher(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是插入有表单提交的教师的基本信息,sql语句为:Stringsql="insertintoT_teachervalues('"+teacher.getTid()+"','"+teacher.getTname()+"','"+teacher.getTpassword()+"','"+teacher.getTgender()+"','"+teacher.getTdepar()+"','"+teacher.getTjur()+"')";实例化db来执行executeUpdate(sql)方法。执行sql语句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count>0)t=true;db.releaseResource();returnt; 3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doAddteacher(),在该方法中完成教师信息的添加。该方法的代码主要是接收参数,包括编号,姓名,密码,性别,所在院系和权限。StringTid=request.getParameter("Tid");StringTname=newString(request.getParameter("Tname").getBytes("ISO-8859-1"),"GB2312"); StringTpassword=request.getParameter("Tpassword");StringTgender=newString(request.getParameter("Tgender").getBytes("ISO-8859-1"),"GB2312"); StringTdepartment=newString(request.getParameter("Tdepar").getBytes("ISO-8859-1"),"GB2312"); StringTjur=newString(request.getParameter("Tjur").getBytes("ISO-8859-1"),"GB2312"); 实例化UserDAO,来执行Addteacher()方法,进行添加教师的信息,即传来的参数,将信息封装,代码如下:UserDAOuserDAO=newUserDAO();Teachermodelteacher=newTeachermodel();teacher.setTid(Tid);teacher.setTname(Tname);teacher.setTpassword(Tpassword);teacher.setTgender(Tgender);teacher.setTdepar(Tdepartment);teacher.setTjur(Tjur);userDAO.Addteacher(teacher);传参并跳转页面,直接运用UserServlet里的浏览教师信息的方法doQueryTeacherList()即可。this.doQueryTeacherList(request,response);浏览教师信息1、View层构建用于浏览,修改,删除教师信息的TeacherList.jsp页面,在点击“浏览/修改/删除教师”时即可展示出来,设计如图3-4所示。2、Model层构建在业务Javabean的UserDAO中添加方法queryTeacherList(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现浏览功能,此sql语句是浏览数据库中的教师的基本信息,sql语句为:Stringsql="select*fromT_teacher";实例化db来执行executeQuery(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeQuery(sql);图3-4教师信息浏览界面判断rs.next中是否有内容,如果有实例化Teachermodel,并取出id,name,password,gender,depar,jur,并放入实例化后的teacher中,代码如下:while(rs.next()){ Teachermodelteacher=newTeachermodel(); teacher.setTid(rs.getString(1)); teacher.setTname(rs.getString(2)); teacher.setTpassword(rs.getString(3)); teacher.setTgender(rs.getString(4)); teacher.setTdepar(rs.getString(5)); teacher.setTjur(rs.getString(6)); }把整个teacher中的信息放入teacherList中,再进行循环添加,直到rs中没有内容为止,代码如下:teacherList.add(teacher);}最后释放数据库资源,代码如下:db.releaseResource();}catch(SQLExceptione){ e.printStackTrace(); }returnteacherList;3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doQueryTeacherList(),在该方法中完成教师信息的浏览。该方法的代码主要是将UserDAO中获取出来的teacherList传递过去,然后进行页面的跳转即可完成浏览功能,代码如下:ArrayListteacherList=newArrayList();UserDAOuserDAO=newUserDAO();teacherList=userDAO.queryTeacherList();request.setAttribute("teacherList",teacherList);RequestDispatcherrd=request.getRequestDispatcher("admin/TeacherList.jsp");rd.forward(request,response);修改教师信息1、View层构建用于修改教师基本信息的UpdateTeacher.jsp,在点击教师信息后面的“修改”时即可展示出来,设计如图3-5所示。图3-5教师信息修改界面2、Model层构建在业务Javabean的UserDAO中添加方法Updateteacher(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的教师的基本信息,sql语句为:Stringsql="updateT_teachersetname='"+teacher.getTname()+"',password='"+teacher.getTpassword()+"',gender='"+teacher.getTgender()+"',department='"+teacher.getTdepar()+"',jurisdiction='"+teacher.getTjur()+"'whereid='"+teacher.getTid()+"'";实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doUpdateteacher(),在该方法中完成教师信息的修改。该方法的代码主要是接收参数,包括编号,姓名,密码,性别,所在院系和权限。Stringid=request.getParameter("id");Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");Stringpassword=request.getParameter("password");Stringgender=newString(request.getParameter("gender").getBytes("ISO-8859-1"),"GB2312");Stringdepartment=newString(request.getParameter("department").getBytes("ISO-8859-1"),"GB2312");Stringjur=newString(request.getParameter("jur").getBytes("ISO-8859-1"),"GB2312");实例化UserDAO,来执行Updateteacher()方法,进行修改教师的信息,即传来的参数,实例化Teachermodel,代码如下:Teachermodelteacher=newTeachermodel();teacher.setTid(id);teacher.setTname(name);teacher.setTpassword(password);teacher.setTgender(gender);teacher.setTdepar(department);teacher.setTjur(jur);UserDAOuserDAO=newUserDAO();userDAO.Updateteacher(teacher);然后进行页面的跳转即可完成修改功能,代码如下:this.doQueryTeacherList(request,response);删除教师信息1、Model层构建在业务Javabean的UserDAO中添加方法Deleteteacher(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现删除功能,此sql语句是删除数据库中的教师信息,sql语句为:Stringsql="deletefromT_teacherwhereid='"+teacher.getTid()+"'";实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);2、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doDeleteteacher(),在该方法中完成教师信息的删除。该方法的代码主要是接收参数id,实例化Teachermodel,并实例化UserDAO,来执行Deleteteacher()方法,进行删除教师的信息,代码如下:Stringid=request.getParameter("number");Teachermodelteacher=newTeachermodel();teacher.setTid(id);UserDAOuserDAO=newUserDAO();userDAO.Deleteteacher(teacher);然后进行页面的跳转即可完成删除功能,代码如下:this.doQueryTeacherList(request,response);批量删除教师信息1、Model层构建在业务Javabean的UserDAO中添加方法DeleteAllteacher(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现批量删除功能,此sql语句是批量删除数据库中的教师信息,先实例化db,根据传递过来的Tlist,求其长度,然后循环做字符串的拼接,最后执行executeUpdate(sql)方法。代码如下:DBManagerdb=newDBManager();for(inti=0;i<Tlist.length;i++){ sql="deletefromT_teacherwhereid='"+Tlist[i]+"'"; System.out.println(sql); count=db.executeUpdate(sql);}2、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doDeleteAllteacher(),在该方法中完成教师信息的批量删除。该方法的代码主要是接收Tlist[],获取复选框中的信息,进行批量删除,实例化Teachermodel,并实例化UserDAO,来执行DeleteAllteacher()方法,进行批量删除教师的信息,代码如下:String[]Tlist=request.getParameterValues("deleteAll");UserDAOuserDAO=newUserDAO();userDAO.DeleteAllteacher(Tlist);然后进行页面的跳转即可完成删除功能,代码如下:this.doQueryTeacherList(request,response);多条件查询教师信息1、View层构建用于查询教师基本信息的SelectTeacher.jsp,在点击教师信息页面的“查询”时即可展示出来,设计如图3-6所示。图3-6教师信息查询界面2、Model层构建在业务Javabean的UserDAO中添加方法queryByConditionTeacher(),该方法能够根据传来的sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的教师的基本信息。实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);ArrayListal=newArrayList();判断rs.next中是否有内容,如果有实例化Teachermodel,并取出id,name,password,gender,depar,jur,并放入实例化后的teacher中,代码如下:while(rs.next()){ Teachermodelteacher=newTeachermodel(); teacher.setTid(rs.getString(1)); teacher.setTname(rs.getString(2)); teacher.setTpassword(rs.getString(3)); teacher.setTgender(rs.getString(4)); teacher.setTdepar(rs.getString(5)); teacher.setTjur(rs.getString(6));把整个teacher中的信息放入al中,再进行循环添加,直到rs中没有内容为止,代码如下:al.add(teacher);}最后返回al。returnal;}3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doQueryTeacher(),在该方法中完成查询教师信息。该方法的代码主要是接收复选的条件以及textbox里的参数,并根据所选条件判断,拼接sql语句。代码如下:String[]choice=request.getParameterValues("choice");Stringname=request.getParameter("name");if(!name.equals(""))name=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312"); Stringsql="select*fromT_teacherwhere"; System.out.println(sql); if(choice!=null){ if(choice.length==1){ if(choice[0].equals("byId")){ sql+="id='"+request.getParameter("id")+"'"; }else{ sql+="namelike'%"+name+"%'"; }} else{ sql+="id='"+request.getParameter("id")+"'andnamelike'%"+name+"%'"; }实例化UserDAO,来执行queryByConditionTeacher()方法,进行查询教师的信息。 UserDAOuserDAO=newUserDAO(); ArrayListal=userDAO.queryByConditionTeacher(sql); request.setAttribute("teacherList",al);}否则,返回提示“请选择查询条件!”,代码如下:else{ request.setAttribute("message","请选择查询条件!"); }然后进行页面的跳转即可完成查询功能,代码如下: RequestDispatcherrd=request.getRequestDispatcher("admin/TeacherList.jsp");rd.forward(request,response);}3.5论著信息管理论著信息管理是教师信息管理系统的主要模块,其中包括对论著信息的浏览,添加,修改,删除,查询,批量删除的功能。以便于管理员对教师论著信息的维护和修改。添加论著信息1、View层构建用于添加论著信息的AddBook.jsp设计如图3-7所示,输入论著编号、论著名称、出版社和教师编号。点击保存按钮,即可完成论著信息的添加。图3-7论著信息添加界面2、Model层构建在业务Javabean的UserDAO中添加方法Addbook(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是插入有表单提交的论著的基本信息,sql语句为:Stringsql="insertintoT_lunzhuvalues('"+book.getBid()+"','"+book.getBname()+"','"+book.getBpress()+"','"+book.getTid()+"')";实例化db来执行executeUpdate(sql)方法。执行sql语句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count>0)t=true;db.releaseResource();returnt; 3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doAddbook(),在该方法中完成论著信息的添加。该方法的代码主要是接收参数,包括论著编号、论著名称、出版社和教师编号。Stringid=request.getParameter("Bid");Stringname=newString(request.getParameter("Bname").getBytes("ISO-8859-1"),"GB2312");Stringpress=newString(request.getParameter("Bpress").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");实例化UserDAO,来执行Addbook()方法,进行添加论著的信息,即传来的参数,将信息封装,代码如下:UserDAOuserDAO=newUserDAO();Bookmodelbook=newBookmodel();book.setBid(id);book.setBname(name);book.setBpress(press);book.setTid(Tid);userDAO.Addbook(book);传参并跳转页面,直接运用UserServlet里的浏览论著信息的方法doQueryBookList()即可。this.doQueryBookList(request,response);浏览论著信息1、View层构建用于浏览,修改,删除论著信息的BookList.jsp页面,在点击“浏览/修改/删除论著”时即可展示出来,设计如图3-8所示。图3-8论著信息浏览界面2、Model层构建在业务Javabean的UserDAO中添加方法queryBookList(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的论著的基本信息,sql语句为:Stringsql="select*fromT_lunzhu";实例化db来执行executeQuery(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeQuery(sql);判断rs.next中是否有内容,如果有实例化Bookmodel,并取出id,name,press,Tid,并放入实例化后的book中,代码如下:while(rs.next()){ Bookmodelbook=newBookmodel(); book.setBid(rs.getString(1)); book.setBname(rs.getString(2)); book.setBpress(rs.getString(3)); book.setTid(rs.getString(4));把整个book中的信息放入bookList中,再进行循环添加,直到rs中没有内容为止,代码如下:bookList.add(book);}最后释放数据库资源,代码如下:db.releaseResource();}catch(SQLExceptione){ e.printStackTrace(); }returnbookList;3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doQueryBookList(),在该方法中完成论著信息的浏览。该方法的代码主要是将UserDAO中获取出来的bookList传递过去,然后进行页面的跳转即可完成浏览功能,代码如下:ArrayListbookList=newArrayList();UserDAOuserDAO=newUserDAO();bookList=userDAO.queryBookList();request.setAttribute("bookList",bookList);RequestDispatcherrd=request.getRequestDispatcher("admin/BookList.jsp");rd.forward(request,response);修改论著信息1、View层构建用于修改论著基本信息的UpdateBook.jsp,在点击论著信息后面的“修改”时即可展示出来,设计如图3-9所示。图3-9论著信息修改界面2、Model层构建在业务Javabean的UserDAO中添加方法Updatebook(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的论著的基本信息,sql语句为:Stringsql="updateT_lunzhusetname='"+book.getBname()+"',press='"+book.getBpress()+"',Tid='"+book.getTid()+"'whereid='"+book.getBid()+"'";实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doUpdatebook(),在该方法中完成论著信息的修改。该方法的代码主要是接收参数,包括论著编号、论著名称、出版社和教师编号。Stringid=request.getParameter("id");Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");Stringpress=newString(request.getParameter("press").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");实例化UserDAO,来执行Updatebook()方法,进行修改论著的信息,即传来的参数,实例化Bookmodel,代码如下:Bookmodelbook=newBookmodel();book.setBid(id);book.setBname(name);book.setBpress(press);book.setTid(Tid);UserDAOuserDAO=newUserDAO();userDAO.Updatebook(book);然后进行页面的跳转即可完成修改功能,代码如下:this.doQueryBookList(request,response);删除论著信息1、Model层构建在业务Javabean的UserDAO中添加方法Deletebook(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现删除功能,此sql语句是删除数据库中的论著信息,sql语句为:Stringsql="deletefromT_lunzhuwhereid='"+book.getBid()+"'";实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);2、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doDeletebook(),在该方法中完成论著信息的删除。该方法的代码主要是接收参数id,实例化Bookmodel,并实例化UserDAO,来执行Deletebook()方法,进行删除论著的信息,代码如下:Stringid=request.getParameter("number");Bookmodelbook=newBookmodel();book.setBid(id);UserDAOuserDAO=newUserDAO();userDAO.Deletebook(book);然后进行页面的跳转即可完成删除功能,代码如下:this.doQueryBookList(request,response);批量删除论著信息1、Model层构建在业务Javabean的UserDAO中添加方法DeleteAllbook(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现批量删除功能,此sql语句是批量删除数据库中的论著信息,先实例化db,根据传递过来的Blist,求其长度,然后循环做字符串的拼接,最后执行executeUpdate(sql)方法。代码如下:DBManagerdb=newDBManager();for(inti=0;i<Blist.length;i++){ sql="deletefromT_lunzhuwhereid='"+Blist[i]+"'"; count=db.executeUpdate(sql); }2、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doDeleteAllbook(),在该方法中完成论著信息的批量删除。该方法的代码主要是接收Blist[],获取复选框中的信息,进行批量删除,实例化Bookmodel,并实例化UserDAO,来执行DeleteAllbook()方法,进行批量删除论著的信息,代码如下:String[]Blist=request.getParameterValues("deleteAll");UserDAOuserDAO=newUserDAO();userDAO.DeleteAllbook(Blist);然后进行页面的跳转即可完成删除功能,代码如下:this.doQueryBookList(request,response);多条件查询论著信息1、View层构建用于查询论著基本信息的SelectBook.jsp,在点击论著信息页面的“查询”时即可展示出来,设计如图3-10所示。图3-10论著信息查询界面2、Model层构建在业务Javabean的UserDAO中添加方法queryByConditionBook(),该方法能够根据传来的sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的论著的基本信息。实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);ArrayListal=newArrayList();判断rs.next中是否有内容,如果有实例化Bookmodel,并取出id,name,press,Tid,并放入实例化后的book中,代码如下:while(rs.next()){ Bookmodelbook=newBookmodel(); book.setBid(rs.getString(1)); book.setBname(rs.getString(2)); book.setBpress(rs.getString(3)); book.setTid(rs.getString(4));把整个book中的信息放入al中,再进行循环添加,直到rs中没有内容为止,代码如下:al.add(book);}最后返回al。returnal;}3、controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doQueryBook(),在该方法中完成查询论著信息。该方法的代码主要是接收复选的条件以及textbox里的参数,并根据所选条件判断,拼接sql语句。代码如下:String[]choice=request.getParameterValues("choice");Stringname=request.getParameter("name");if(!name.equals(""))name=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");Stringsql="select*fromT_lunzhuwhere";System.out.println(sql);if(choice!=null){if(choice.length==1){ if(choice[0].equals("byId")){ sql+="id='"+request.getParameter("id")+"'"; }else{ sql+="namelike'%"+name+"%'"; }} else{ sql+="id='"+request.getParameter("id")+"'andnamelike'%"+name+"%'"; }实例化UserDAO,来执行queryByConditionBook()方法,进行查询论著的信息。UserDAOuserDAO=newUserDAO();ArrayListal=userDAO.queryByConditionBook(sql);request.setAttribute("bookList",al);}否则,返回提示“请选择查询条件!”,代码如下:else{ request.setAttribute("message","请选择查询条件!"); }然后进行页面的跳转即可完成查询功能,代码如下: RequestDispatcherrd=request.getRequestDispatcher("admin/BookList.jsp");rd.forward(request,response); }3.6科研项目信息管理科研项目信息管理是教师信息管理系统的主要模块,其中包括对科研项目信息的浏览,添加,修改,删除,查询,批量删除的功能。以便于管理员对教师科研项目信息的维护和修改。添加科研项目信息1、View层构建用于添加科研项目信息的AddProject.jsp设计如图3-10所示,输入科研项目编号、科研项目名称、和教师编号。点击保存按钮,即可完成科研项目信息的添加。图3-10科研项目信息添加界面2、Model层构建在业务Javabean的UserDAO中添加方法Addproject(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是插入有表单提交的科研项目的基本信息,sql语句为:Stringsql="insertintoT_keyanvalues('"+project.getPid()+"','"+project.getPname()+"','"+project.getTid()+"')";实例化db来执行executeUpdate(sql)方法。执行sql语句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count>0)t=true;db.releaseResource();returnt; 3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doAddproject(),在该方法中完成科研项目信息的添加。该方法的代码主要是接收参数,包括科研项目编号、科研项目名称和教师编号。Stringid=request.getParameter("Pid");Stringname=newString(request.getParameter("Pname").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");实例化UserDAO,来执行Addproject()方法,进行添加科研项目的信息,即传来的参数,将信息封装,代码如下:UserDAOuserDAO=newUserDAO();Projectmodelproject=newProjectmodel();project.setPid(id);project.setPname(name);project.setTid(Tid);userDAO.Addproject(project);传参并跳转页面,直接运用UserServlet里的浏览科研项目信息的方法doQueryProjectList()即可。this.doQueryProjectList(request,response);浏览科研项目信息1、View层构建用于浏览,修改,删除科研项目信息的ProjectList.jsp页面,在点击“浏览/修改/删除科研项目”时即可展示出来,设计如图3-11所示。图3-11科研项目信息浏览界面2、Model层构建在业务Javabean的UserDAO中添加方法queryProjectList(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的科研项目的基本信息,sql语句为:Stringsql="select*fromT_keyan";实例化db来执行executeQuery(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeQuery(sql);判断rs.next中是否有内容,如果有实例化Projectmodel,并取出id,name,Tid,并放入实例化后的Project中,代码如下:while(rs.next()){ ProjectmodelProject=newProjectmodel(); project.setPid(rs.getString(1)); project.setPname(rs.getString(2)); project.setTid(rs.getString(3));把整个Project中的信息放入ProjectList中,再进行循环添加,直到rs中没有内容为止,代码如下:projectList.add(project);}最后释放数据库资源,代码如下:db.releaseResource();}catch(SQLExceptione){ e.printStackTrace(); }returnprojectList;3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doQueryProjectList(),在该方法中完成科研项目信息的浏览。该方法的代码主要是将UserDAO中获取出来的projectList传递过去,然后进行页面的跳转即可完成浏览功能,代码如下:ArrayListprojectList=newArrayList();UserDAOuserDAO=newUserDAO();projectList=userDAO.queryProjectList();request.setAttribute("projectList",projectList);RequestDispatcherrd=request.getRequestDispatcher("admin/ProjectList.jsp");rd.forward(request,response);修改科研项目信息1、View层构建用于修改科研项目基本信息的UpdateProject.jsp,在点击科研项目信息后面的“修改”时即可展示出来,设计如图3-12所示。图3-12科研项目信息修改界面2、Model层构建在业务Javabean的UserDAO中添加方法Updateproject(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是浏览数据库中的科研项目的基本信息,sql语句为:Stringsql="updateT_keyansetname='"+project.getPname()+"',Tid='"+project.getTid()+"'whereid='"+project.getPid()+"'";实例化db来执行executeUpdate(sql)方法。DBManagerdb=newDBManager();ResultSetrs=db.executeUpdate(sql);3、Controller层构建在UserServlet中,负责管理员登录后的操作请求与响应。为UserServlet添加方法doUpdateproject(),在该方法中完成科研项目信息的修改。该方法的代码主要是接收参数,包括科研项目编号、科研项目名称和教师编号。Stringid=request.getParameter("id");Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");StringTid=request.getParameter("Tid");实例化UserDAO,来执行UpdateProject()方法,进行修改科研项目的信息,即传来的参数,实例化Projectmodel,代码如下:Projectmodelproject=newProjectmodel();project.setPid(id);project.setPname(name);project.setTid(Tid);UserDAOuserD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创意广告长期合同范本
- 二手房自行购买合同范本
- 买卖企业房产合同范例
- 农民种地出租合同范本
- 包装木箱供货合同范本
- 北京政府采购合同范本
- 出售转让冻干机合同范本
- 分摊费用合同范本
- 企业生产订单合同范本
- 分期购车购车合同范本
- 2024年哈尔滨科学技术职业学院单招职业适应性测试题库及答案解析
- 《研学旅行课程设计》课件-理解研学课程设计内涵
- 《西式点心制作》课件-抹茶戚风蛋糕卷
- 2024年北京市大兴区清源街道招聘笔试冲刺题(带答案解析)
- (2024年)污水处理设备培训方案
- 《生物质热电联产工程设计规范》
- 中国十五冶招聘线上笔试测评题库
- xx基层团支部建设培训
- 中国结直肠癌诊疗规范(2023版)解读
- 通用级聚苯乙烯简介介绍
- 《反窃电技术》课件
评论
0/150
提交评论