基于MVC模式的学生成绩管理系统_第1页
基于MVC模式的学生成绩管理系统_第2页
基于MVC模式的学生成绩管理系统_第3页
基于MVC模式的学生成绩管理系统_第4页
基于MVC模式的学生成绩管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 第1章概述1 HYPERLINK l bookmark4 o Current Document 系统目的和意义1 HYPERLINK l bookmark6 o Current Document 系统开发环境1 HYPERLINK l bookmark8 o Current Document 系统开发模式及基本功能1 HYPERLINK l bookmark10 o Current Document 第2章系统设计3 HYPERLINK l bookmark12 o Current

2、 Document 系统的模块划分3 HYPERLINK l bookmark14 o Current Document 数据库设计3 HYPERLINK l bookmark16 o Current Document 第3章系统的详细设计及实现6 HYPERLINK l bookmark18 o Current Document 3.1数据库底层访问类6 HYPERLINK l bookmark20 o Current Document 登录模块9 HYPERLINK l bookmark22 o Current Document 系统首页面导航11 HYPERLINK l bookmark

3、24 o Current Document 学生信息管理12 HYPERLINK l bookmark26 o Current Document 课程信息管理19 HYPERLINK l bookmark34 o Current Document 学生成绩管理20结论22 HYPERLINK l bookmark44 o Current Document 参考文献23 第1章概述系统目的和意义本次课程设计的题目是“基于MVC模式的学生成绩管理系统”的设计与实现,该设计是对本学期前八周所学的JSP程序设计课程的巩固和深入应用,同时结合Java语言、JSP技术进行Web程序设计,利用前面学过的知识

4、来解决实际问题,锻炼解决问题的能力和动手编程的能力。鉴于近年来,企业级应用系统大多数都部署到Web服务器上,早期的Web应用程序开发技术,已经不能很好的胜任这个任务,因此该课题项目可以提高学生对未来企业的适应性,更好的理解软件工程的意义。系统开发环境1本系统采用Browser/Server体系结构。2系统开发环境1)开发平台:MyEclipse5.5.1GA2)开发语言:JSP、Java3)数据库:MicrosoftSQLServer20053系统运行环境客户端:浏览器:IE6.0服务器端:数据库:MicrosoftSQLServer2005应用程序系统系统开发模式及基本功能本系统是基于MVC

5、模式设计和开发的,MVC(Model-View-Controller)模式是一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三层一一模型层、视图层、控制层。MVC是一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。基于MVC模式的学生成绩管理系统主要实现前台和后台两部分功能设计,其中前台主要实现按照学生

6、信息、课程信息和成绩信息进行浏览和查询功能,后台主要实现学生信息管理、课程信息管理和学生成绩管理功能。在学生成绩管理模块中,管理员可以查询、浏览已提交成绩与未提交成绩的课程,对于相应的课程,可以逐条删除或批量删除或修改已提交的成绩信息,教师可以对未提交成绩进行成绩录入,学生只能够查询浏览自己的已提交成绩。所有的查询浏览功能均实现了分页功能。第2章系统设计系统的模块划分学生成绩管理系统可实现学生成绩管理功能,管理员可以对学生信息和课程信息进行查询、增加、删除、修改。教师可以对学生成绩进行录入。学生可以对自己的成绩进行查询。1、学生信息管理模块管理员可以对学生的信息进行查询、增加、删除、修改,可以

7、批量删除。2、课程信息管理模块管理员可以对课程的信息进行查询、增加、删除、修改,可以批量删除。3、学生成绩管理模块教师可以对成绩信息进行录入。成绩可批量增加。系统功能模块图如图2-1所示。增加学生信息删除学生信息修改学生信息查询学生信息增加课程信息删除课程信息修改课程信息查询课程信息录入学生成绩查询个人成绩修改学生成绩图2-1系统功能模块图数据库设计数据库管理系统是允许用户在计算机上创建数据库,增加、修改、删除、排序和检索数据库中的数据,并使用数据库中的数据创建表格和报表的软件系统。数据库的设计是整个系统成败的一个重要环节。合理的数据库设计能够给系统带来很好的效率。而且能够使得各个功能模块的设

8、计变得非常简单而且模块间的关系特别明确本系统的数据库是在SQLServer2005中创建的。经过需求分析和初步设计,学生成绩管理系统数据库部分主要包含5个表,分别是学生信息表、教师信息表、用户信息表、课程信息表和成绩信息表表的结构、表字段的数据类型及相关说明如下:1、学生信息表学生信息表包含了学生的学号、姓名、性别、出生年月、专业以及班级信息,表2-1所示是学生信息表结构。表2-1学生信息表列名说明数据类型约束studentld学号nchar(lO)主键studentName姓名nchar(lO)非空gender性别char(2)“男”或“女”birthday出生年月nchar(lO)depa

9、rtment院系nchar(lO)非空major专业nchar(lO)非空class班级nchar(lO)非空2、教师信息表教师信息表包含了教师的教工号、姓名、性别、出生年月、院系信息,表2-2所示是教师信息表结构。表2-2教师信息表列名说明数据类型约束teacherId教工号nchar(lO)主键teacherName姓名nchar(lO)非空gender性别char(2)“男”或“女”birthday出生年月nchar(lO)department院系nchar(lO)非空3、用户信息表用户信息表包含了用户的用户名、密码及角色信息。表2-3所示是用户信息表结构。表2-3用户信息表列名说明数据

10、类型约束userName用户名nchar(lO)主键password密码nchar(10)非空actor角色nchar(10)非空4、课程信息表课程信息表包含了课程的课程号、课程名、开课时间、学分、考试性质、开课专业及任课教师信息。表2-4所示是课程信息表结构。表2-4课程信息表列名说明数据类型约束courseld课程号nchar(lO)主键courseName课程名nchar(lO)非空startTime开课时间nchar(lO)非空credit学分nchar(lO)非空character考试性质nchar(lO)非空major开课专业nchar(lO)非空teacherId任课教师ncha

11、r(lO)非空5、成绩信息表成绩信息表包含了学生成绩的学号、课程号、任课教师号、开课时间、及成绩信息。表2-5所示是课程信息表结构。表2-5成绩信息表列名说明数据类型约束studentld学号nchar(lO)主键courseId课程号nchar(lO)主键teacherId任课教师号nchar(10)非空startTime开课时间nchar(10)非空Grade成绩nchar(10)非空以上就是学生成绩管理系统所需的数据表,按照这些表结构设计,在MicrosoftSQLServer2005中创建数据库GradeManage,并创建相应的表。第3章系统的详细设计及实现数据库底层访问类本系统的设

12、计使用基于Servlet的MVC架构模式,将系统的各个功能的实现过程严格的划分为视图(View)、控制(Controller)、模型(Model),其中View负责界面的显示,Controller负责请求的转发和响应,Model负责逻辑业务对象实体和业务实体。由于本系统是一种信息管理系统,在这三层之下,还要建立数据库访问层,该层完成数据库的连接、SQL语句的具体执行等操作。这一层由MVC模式中的Model层里的业务实体进行调用,从而完成逻辑业务的信息维护操作。3.1.1JDBC数据库访问技术JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句

13、的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同

14、的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接(JDBC)由一组用Java编程语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,使他们能够用纯JavaAPI来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。SQLSERVER连接方式:第一步:新建类DBManager.java第二步:导包操作第三步:编写类代码publicclassDBManager1、定义变量2、获取连接方法getConnectio

15、n3、执行查询方法executeQuery或更新方法executeUpdate4、释放资源的方法releaseSource然后把sqljdbc.jar导入到项目文件下的WEB-INF下的lib文件夹中。添加DBManager公共类首先创建包nepu.tools,在该包下创建名为DBManager的类,该类得职责用于提供访问、操作数据库的公共方法。添加公共类的方法和步骤如下:在工程中的包名上点右键,选择【New】-【Class】菜单项,将弹出【NewJavaClass】对话框,保留默认的选择,在Name文本框中输入DBManager,点击Finsih按钮。编写公共方法3.1.2小节为项目添加了一

16、个DBManager类,该类用于存放连接、操作数据库的公共方法,本小节介绍如何编写这些公共方法。首先为DBManager类声明几个公共变量,其中conn为数据库连接对象,stmt用于发送SQL语句、接收SQL的执行结果,rs为执行查询语句得到的结果集,uri表示要连接的数据库的路径,根据数据库不同变化,user为登录数据库的用户名,password为登录数据库的密码。该类的变量声明代码如下:privateStringuri=jdbc:sqlserver:/localhost:1433;DatabaseName=GradeManage;privateStringuser=sa;privateSt

17、ringpassword=123456;privateConnectionconn=null;privateStatementstmt=null;privateResultSetrs=null;1、数据库连接方法getConnection()该方法首先要在程序中加载驱动,Class是包java.lang中的一个类,该类调用静态方法forName可以加载驱动,该方法抛ClassNotFoundException异常,因此需要捕获异常。DriverManager类用于处理驱动的调入并且对产生新的数据库连接,使用DriverManager类的方法getConnection创建连接对象,参数依次为前面

18、定义好的三个变量uri、user和password,变量conn获取了数据库连接对象。getConnection方法的关键代码如下:publicConnectiongetConnection()tryClass.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);conn=DriverManager.getConnection(uri,user,password);if(conn!=null)System.out.println(数据库链接获取成功);catch(ClassNotFoundExceptione)System.out.pri

19、ntln(”驱动程序加载异常);catch(SQLExceptione)System.out.println(”获取连接异常);e.printStackTrace();/打印堆栈跟踪returnconn;2、数据库查询方法executeQuery()该方法首先要调用Connection对象的createStatement方法,用来实例化Statement对象,然后用这个对象执行SQL查询语句,结果返回为ResultSet型的结果集,该方法抛SQLException异常。executeQuery方法的关键代码如下:publicResultSetexecuteQuery(Stringsql)try

20、stmt=conn.createStatement();rs=stmt.executeQuery(sql);catch(SQLExceptione)System.out.println(SQL执行错误);e.printStackTrace();/打印堆栈跟踪returnrs;3、数据库增删改的操作方法executeUpdate()该方法首先要声明一个整形变量count,用来记录执行更新操作后影响数据库的条数,然后调用Connection对象的createStatement方法,用来实例化Statement对象,然后用这个对象执行SQL更新语句,可以是修改语句、删除语句或者插入语句,结果返回为i

21、nt型的数字,表示数据库中受影响的行数,该方法抛SQLException异常。executeUpdate方法的关键代码如下:publicintexecuteUpdate(Stringsql)intcount=0;trystmt=conn.createStatement();count=stmt.executeUpdate(sql);catch(SQLExceptione)System.out.println(SQL执行错误);e.printStackTrace();/打印堆栈跟踪returncount;登录模块登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。本节

22、首先严格按照MVC架构模式为学生成绩管理系统制作了一个简单的登录模块,登录成功后,应当进入该系统的管理系统,因此本节还详细介绍了主窗体的设计。按照MVC模式进行构建登录功能的开发,对该模块的文件构建说明如下Model层:在nepu.model包中添加用户的实体Javabean,类名为User。在nepu.DAO中添加业务Javabean,类名为UserDAO。其中User类包含2个属性,分别是姓名和密码,同时在该类中添加属性的set、get方法,User类的属性定义部分代码如下:publicclassUserprivateStringuserName=;/用户名privateStringpas

23、sword=;/密码Ctroller层:在nepu.servlet中添加类UserServlet,该servlet主要负责参数的接收以及用户相关操作的流程控制,例如,用户登录功能。View层:在Webroot/Admin文件夹下添加名为login.jsp的JSP文件。View层构建首先在MyEclipse的项目的WebRoot目录中建立admin文件夹,在其下建立JSP页面,在该页面中编写表单代码,其中注意表单的action属性为该表单信息提交的服务端URL地址,method属性为提交方式。在这里由于是按照MVC模式,将信息提交给Servlet,因此method必须post。同时为避免复杂的U

24、RL的路径逻辑关系,统一使用绝对路径。图3-1登录界面设计Model层构建在业务Javabean类UserDAO中建立方法login(),该方法的主要功能是判断用户是否存在,并且密码是否正确,该方法需要接收由servlet传递过来2个参数,一个是用户名userName,另一个是密码password,调用DBManger数据库底层操作类的executeQuery()方法实现sql查询,sql语句如下:Stringsql=select*fromtb_userwhereuserName=+userName+andpassword=+password+;执行该sql语句后,将返回一个结果集Result

25、Set,判断该结果集中的记录的条数,并使用变量rowCount记录,如果rowCount的值大于0,则表示用户存在,登录成功,返回一个布尔类型的值true,否则返回false。获取结果集后方法的核心代码如下:ResultSetrs=dbManager.executeQuery(sql);trywhile(rs.next()rowCount+;if(rowCount0)flag=true;Controller层构建在UserServlet添加方法Login(),在该方法中完成登录的逻辑判断。首先需要通过方法request.getParameter()来接收由Login.jsp页面传递过来的参数u

26、serName和password,在进行必要的参数转码或合法性判定后调用Model层的业务javaBeanUserDAO的登录方法实现登录判定,登录成功后需要注意将用户名用session进行存储,这样,在用户多次请求和响应之后都可以由session中取出用户名展示或判断用户是否登录。最后,在servlet中使用response.sendRedirect()方法跳转到管理后台的首页面。UserServelt中的Login()方法关键代码如下:Stringname=request.getParameter(userName);Stringpassword=request.getParameter(

27、password);UserDAOuserDAO=newUserDAO();if(userDAO.login(name,password)HttpSessionsession=request.getSession();session.setAttribute(userName,userName);response.sendRedirect(admin/AdminIndex.jsp);3.3系统首页面导航整个学生成绩管理系统的界面设计是左侧导航的结构,如图3-2所示,系统几乎所有的jsp页面都具有大致类似的页面结构和风格,例如,相同的页面头部、左侧导航和页脚,因此,为了页面编码的方便和代码的可重

28、用性,系统设计了一些公用的页面文件,主要包括AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp,其他的页面如后台管理的首页面AdminIndex.jsp则直接通过include指令标记将AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp包含到自身页面的相应位置即可,这样,编码工作将主要集中在左侧导航AdminLeft.jsp和AdminIndex.jsp页面。其他新增的功能页面的设计思路类似,在这里就不再赘述了。AdminIndex.jsp界面的浏览效果如图3-2所示:短船jT毂叮眦.学生俑凰:*汨:沖匸且All匚叩艸jghrmri-Hl

29、20L:不北石醮学轶怦爭民图3-2后台管理首页面浏览效果3.4学生信息管理本节首先严格按照MVC架构模式制作了一个学生信息管理模块。按照MVC模式进行构建登录功能的开发,对该模块的文件构建说明如下(1)Model层:在nepu.model包中添加用户的实体Javabean,类名为Student。在nepu.DAO中添加业务Javabean,类名为StudentDAO。其中Student类包含7个属性,分别是ID、姓名、性别、生日、院系、专业和班级,同时在该类中添加属性的set、get方法,Student类的属性定义部分代码如下:publicclassStudentprivateStringst

30、udentId=;学生IDprivateStringstudentName=;学生姓名privateStringgender=;学生性别privateStringbirthday;学生牛日privateStringdepartment;学生院系privateStringmajor=;学生专业privateStringstudentClass=;学生班级(2)Ctroller层:在nepu.servlet中添加类StudentServlet,该servlet主要负责学生信息管理。(3)View层:在Webroot/Admin文件夹下添加名为AddStudent.jsp、StudentList.j

31、sp、UpdateStudent.jsp三个JSP页面。3.4.1增加学生信息1、View层构建用于添加学生信息的AddStudent.jsp设计如图3-3所示,输入学生编号,姓名,性别,生日,所在院系、专业和班级。点击提交按钮,即可完成学生信息的添加。红1C-Fi中泌怙SIS图3-3学生信息添加页面浏览效果2、Model层构建在业务Javabean的StudentDAO中添加方法addStudent(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现添加功能,此sql语句是插入有表单提交的学生的基本信息,sql语句为:Stringsql=insertintostu

32、dentvalues(+student.getStudentId()+,+student.getStudentName()+,+student.getGender()+,+student.getBirthday()+,+student.getDepartment()+,+student.getMajor()+,+student.getStudentClass()+);实例化db来执行executeUpdate(sql)方法。执行sql语句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);if(count0)flag=true;

33、db.releaseSource();returnflag;3、Controller层构建在StudentServlet中,负责学生信息的添加与维护。为StudentServlet添加方法doAddStudent(),在该方法中完成学生信息的添加。该方法的代码主要是接收参数,包括学生编号,姓名,性别,生日,所在院系、专业和班级。StringstudentId=request.getParameter(studentId);StringstudentName=request.getParameter(studentName);studentName=newString(studentName.g

34、etBytes(ISO-8859-1),GB2312);Stringgender=request.getParameter(gender);gender=newString(gender.getBytes(ISO-8859-1),GB2312);Stringyear=request.getParameter(year);Stringmonth=request.getParameter(month);Stringbirthday=year+month;Stringdepartment=request.getParameter(department);department=newString(de

35、partment.getBytes(ISO-8859-1),GB2312);System.out.println(addstudentdepartment=+department);Stringmajor=request.getParameter(major);major=newString(major.getBytes(ISO-8859-1),GB2312);System.out.println(addstudentmajor=+major);StringstudentClass=request.getParameter(studentClass);studentClass=newStrin

36、g(studentClass.getBytes(ISO-8859-1),GB2312);实例化StudentDAO,来执行addStudent()方法,进行添加学生的信息,并判断及处理各种添加异常。最后将信息封装,代码如下:tryintstudentId2=Integer.parseInt(studentId);student.setStudentId(studentId);student.setStudentName(studentName);student.setGender(gender);student.setBirthday(birthday);student.setDepartme

37、nt(department);student.setMajor(major);student.setStudentClass(studentClass);StudentDAOstudentDAO=newStudentDAO();if(studentName.equals()request.setAttribute(message,姓名不能为空!);RequestDispatcherrd=request.getRequestDispatcher(Admin/AddStudent.jsp);rd.forward(request,response);elseif(department.equals(

38、)request.setAttribute(message,请选择院系!);RequestDispatcherrd=request.getRequestDispatcher(Admin/AddStudent.jsp);rd.forward(request,response);elseif(studentDAO.addStudent(student)request.setAttribute(message,添加学生成功!);this.doQueryStudent(request,response);elserequest.setAttribute(message,添加失败!学生学号已存在!);R

39、equestDispatcherrd=request.getRequestDispatcher(Admin/AddStudent.jsp);rd.forward(request,response);catch(Exceptione)request.setAttribute(message,学号必须为数字!);传参并跳转页面,代码如下:RequestDispatcherrd=request.getRequestDispatcher(Admin/AddStudent.jsp);rd.forward(request,response);3.4.2修改学生信息1、View层构建用于修改学生信息的Upd

40、ateStudent.jsp设计如图3-4所示,更改学生编号,姓名,性别,生日,所在院系、专业和班级。点击修改按钮,即可完成学生信息的修改。I+-IU:|:畑i箕眾加JSi盲息学号DD1玮可修茂王三H別.If-T?L19JOL1390巧年Pb月聊腰糸.W=:币-舷澤v_-谄近悻Vaf飯JEflIlf*All“pFLishWrai-uvi-12DJ2油人学驻啓学院图3-4学生信息修改页面浏览效果2、Model层构建在业务Javabean的StudentDAO中添加方法updateStudentByld(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现修改功能,此sq

41、l语句是修改数据库中两个表的学生的基本信息,sql语句为:Stringsql=updatestudentsetstudentName=+student.getStudentName()+,gender=+student.getGender()+,birthday=+student.getBirthday()+,department=+student.getDepartment()+,major=+student.getMajor()+,studentClass=+student.getStudentClass()+wherestudentId=+studentId+;Stringsql1=up

42、dategradesetstudentName=+student.getStudentName()+wherestudentId=+studentId+;实例化db来执行executeUpdate(sql)方法。执行sql语句。DBManagerdb=newDBManager();intcount=db.executeUpdate(sql);db.executeUpdate(sql1);if(count0)flag=true;db.releaseSource();returnflag;3、Controller层构建在StudentServlet中,负责学生信息的添加与维护。为StudentSe

43、rvlet添加方法doUpdateStudent(),在该方法中完成学生信息的修改。该方法的代码主要是接收参数,包括学生编号,姓名,性别,生日,所在院系、专业和班级。StringstudentId=request.getParameter(studentId);StringstudentName=request.getParameter(studentName);studentName=newString(studentName.getBytes(ISO-8859-1),GB2312);Stringgender=request.getParameter(gender);gender=newSt

44、ring(gender.getBytes(ISO-8859-1),GB2312);Stringyear=request.getParameter(year);Stringmonth=request.getParameter(month);Stringbirthday=year+month;Stringdepartment=request.getParameter(department);department=newString(department.getBytes(ISO-8859-1),GB2312);Stringmajor=request.getParameter(major);majo

45、r=newString(major.getBytes(ISO-8859-1),GB2312);StringstudentClass=request.getParameter(studentClass);studentClass=newString(studentClass.getBytes(ISO-8859-1),GB2312);实例化model中的Student,并实例化StudentDAO,来执行updateStudentByld()方法,进行修改学生的信息,并判断及处理各种修改异常。代码如下:Studentstudent=newStudent();student.setStudentNa

46、me(studentName);student.setGender(gender);student.setBirthday(birthday);student.setDepartment(department);student.setMajor(major);student.setStudentClass(studentClass);StudentDAOstudentDAO=newStudentDAO();if(studentName.equals()request.setAttribute(message,姓名不能为空!);this.doShowUpdateStudent(request,r

47、esponse);elseif(department.equals()request.setAttribute(message,请选择院系!);this.doShowUpdateStudent(request,response);判断修改结果,并跳转页面。代码如下:elseif(studentDAO.updateStudentById(student,studentld)request.setAttribute(message,修改成功!);this.doQueryStudent(request,response);elserequest.setAttribute(message,修改失败!)

48、;this.doQueryStudent(request,response);3.4.3浏览学生信息1、View层构建用于浏览学生信息的StudentList.jsp设计如图3-5所示,展示学生编号,姓名,性别,生日,所在院系、专业、班级和修改删除按钮。宇土忙息它程L.Si点耳学生信息浏览*汀B学生歯轼音饉诜样号fl別出忖JrCCL王男L991DJ狀怦工程斑:rDCG张虫Lasini计业51与伯虑挂腿子世息拜学与技丰除用rW3LOQDDJ计豆机与ra.&.K讨且Bl科竽与低除厂COflL99201城件報辦工程Jl.:-JWr;|姑|DCS男L9930I计矍机与信息拽如网珑:首更上一帀下一页本帀

49、黑L页F共Z页AllCowfLiditszw皿车北右曲大辫件学陳图3-4学生信息浏览页面浏览效果2、Model层构建在业务Javabean的StudentDAO中添加方法queryStudent(),该方法能够根据传来的参数生成sql语句,借助DBManager类来进行实现查询所有学生功能,此sql语句是查询数据库中学生的基本信息,该模块包含分页功能,关键代码是分页。首先建立ArrayList类型的studentList,代码如下:ArrayListstudentList=newArrayList();求出首页和尾页的数字,pageN和pageSize是传递过来的参数,目的是求出首页和尾页,代

50、码如下:intbeginNum=pageSize*(pageN-1)+1;l8intendNum=pageSize*pageN;sql语句为:Stringsql=SELECT*FROM(SELECT*,num=row_number()over(orderbystudentId)fromstudent)twherenumBETWEEN+beginNum+AND+endNum;实例化db来执行executeQuery(sq1)方法。DBManagerdb=newDBManager();Resu1tSetrs=db.executeQuery(sq1);判断rs.next中是否有内容,如果有实例化St

51、udent,并取出基本信息,并放入实例化后的teacher中,代码如下:whi1e(rs.next()Studentstudent=newStudent();student.setStudentId(rs.getString(1);student.setStudentName(rs.getString(2);student.setGender(rs.getString(3);student.setBirthday(rs.getString(4);student.setDepartment(rs.getString(5);student.setMajor(rs.getString(6);student.setStudentC1ass(rs.getString(7);把整个student中的信息放入studentList中,再进行循环添加,直到rs中没有内容为止,最后释放数据库资源,返回studentList,代码如下:studentList.add(student);catch(SQLExceptione)e.printStackTrace();db.re1easeSource();returnstudentList;3、Controo1er层构建StudentServle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论