22.6 学籍管理模块
学籍管理模块主要管理学员的学籍信息。该模块包括4个功能,分别是添加学员的学籍信息、查询学员的学籍信息、修改学员的学籍信息和删除学员的学籍信息。本节将为读 者介绍这4个功能的内容。
22.6.1 添加学员的学籍信息
管理员进入insertStudent.jsp页面,在该页面中添加学员的学籍信息。添加完成后,管理系统会将学籍信息传递给insertStudent.java文件。insertStudent.java文件中调用update()方法,通过该方法将新记录插入到studentInfo表中。insertStudent.java文件的部分代码如下:
DB db = new DB(); db.connectMySQL(); if(sno!=null && !sno.equals(""){ sql="SELECT * FROM studentInfo WHERE sno=sno"; try{ ResultSet rs=db.query(sql); if(rs.next(){ System.out.print("该记录已经存在!"); response.send Redirect("../lnsertError.html"); else{ sql='INSERT INTO studentInfo VALUES("+sno+",'"+sname+"','"+sex+"',"+age+",'"+identify+"', '"+tel+"','"+car_type+"','"+enroll_time+"','"leave_time"','"+scondition+"','"+s_text+"')"; }else{ i=db.update(sql); if(i>0){ System.out.println("记录插入成功"); request.getSession().setAttribute("flag", "OK"); response.sendRedirect("../queryStudent.jsp"); { System.out.println("记录插入失败!); response.sendRedirect("../lnsertError.html"); db.closeDB(); } catch (SQLException e) { e.printStack(); response.sendRedirect("../InsertErroe.jsp") } }
如果插入的记录已经存在,那么就不能再插入了;如果记录不存在,可以通过update()方法执行INSERT语句,将新记录插入studentInfo表中。
22.6.2 查询学员的学籍信息
管理员进入queryStudent.jsp页面查询学籍信息,该页面会将查询条件传递给queryStudent.java文件。在queryStudent.java中会根据传递过来的查询条件组合成不同的 SELECT语句。然后调用query()方法执行SELECT语句,从studentInfo表中查询出满足条件的记录。由于这部分的代码比较多,下面只列出queryStudent.java中生成SELECT语句的代码。
if(!sno.equals("")){ //生成只使用学号查询的SELECT语句 sql="SELECT * FROM studentInfo WHERE sno=sno"; }else{ if(!sname.equals("")){ if(carType.equals("all")){ if(scondition.equals("all")){ //生成只使用sname字段查询的SELECT语句 sql="SELECT * FROM studentInfo WHERE sname LIKE '%"+sname+"%'"; }else{ //生成使用sname字段和scondition字段査询的SELECT语句 sql="SELECT * FROM studentInfo WHERE sname LIKE '%"+sname+"%' AND scondition='"+scondition+"'"; } }else{ if(scondition.equals("all")){ //生成使用sname字段和car_type字段查询的SELECT语句 sql="SELECT * FROM studentInfo WHERE sname LIKE '%" +sname+"%' AND car_type='"+carType+"'"; }else{ //生成使用sname字段、scondition字段和car_type字段查询的SELECT语句 sql="SELECT * FROM studentInfo WHERE sname LIKE '%” +sname+"%' AND scondition='"+scondition+"' AND car_type='"+ carType+'""; } } }else{ if(carType.equals("all"){ if(scondition.equals("all")){ //生成查询studentInfo表的所有记录的SELECT语句 sql="SELECT * FROM studentlnfo"; }else{ //生成使用scondition字段查询的SELECT语句 sql="SELECT * FROM studentInfo WHERE scondition='"+scondition+'""; }else{ if(scondition.equals("all")){ //生成使用car_type字段查询的SELECT语句 sql="SELECT * FROM studentinfo WHERE car_type='"+carType+'""; }else{ //生成使用scondition字段和car_type字段查询的SELECT语句 sql="SELECT * FROM studentinfo WHERE scondition='"+scondition+'" AND car_type='"+carType+'"";
modifyStudent.java文件中将获取来的参数值组合成SELECT语句。然后通过query()方法执行SELECT语句,并且将査询结果存储到ResultSet对象中。
22.6.3 修改学员的学籍信息
管理员进入modifyStudent.jsp页面后,可以修改学员的学籍信息。修改完成后,单击【确定】按钮,修改后的信息就可以提交给modifyStudent.java文件。这个文件调用DB.java 中的update()方法将修改的数据写入studentinfo表。modifyStudent.java文件生成UPDATE 语句的代码如下:
//生成UPDATE语句 sql="UPDATE studentinfo SET sname='"+sname+"',sex="'+sex+'",age="+age+",identify="'+identify+ "',tel='"+tel+"',car_type='"+car_type+'",enroll_time="'+enroll_time+"',leave_time="'+leave_time+ "',scondition='"+scondition+"',s_text="'+s_text+'" WHERE sno=sno";
modifyStudent.java文件中将获取来的参数值组合成UPDATE语句。UPDATE语句存储在字符串变量sql中。然后调用update()方法执行UPDATE语句。如果update()方法返回值大于0,就说明有记录被更新,这表示更新成功。
22.6.4删除学员的学籍信息
管理员在queryStudent.jsp页面查询信息后,可以在每个信息的后面看到【删除】链接。 单击【删除】链接后,程序会将学员的学号(sno)值传递给deleteStudent.java文件。 deleteStudent.java文件获取sno值后,会生成DELETE文件。然后调用叩update()方法执行DELETE语句。deleteStudent.java文件中生成DELETE语句的代码如下:
sql="DELETE FROM studentinfo WHERE sno=sno";
deleteStudent.java文件调用update()方法执行0delete语句。执行成功后,update()方法会返回一个数值。如果返回值大于0,就表示有记录被删除。