当前位置: 代码迷 >> Web前端 >> servlet习题2-简单学生学籍管理系统
  详细解决方案

servlet习题2-简单学生学籍管理系统

热度:376   发布时间:2012-07-18 12:05:40.0
servlet练习2-简单学生学籍管理系统

要求同上一个练习一样,只使用servlet,实现简单的学生学籍管理系统,具备增删查改功能。

效果图:

第一部当然是建立数据库,这里使用的是oracle,

? ? ??第二部我们先写数据库的操作类吧,首先是查询所有学生信息

?

public ResultSet selectAllStudent() throws SQLException{
		
		String sql = "select * from student";
		java.sql.Statement stmt = conn.createStatement();
		ResultSet set = stmt.executeQuery(sql);	
		System.out.println("查询正确");
		return set;
	}

?

?然后是插入一个新学生的信息

?

public boolean insertAStudent(int stu, String name, String sex, int phone,
			String address) throws SQLException {
		// TODO Auto-generated method stub
			String sql = "insert into student values("+stu+",'"+name+"','"+sex+"',"+phone+",'"+address+"')";
			Statement stmt = conn.createStatement();
			boolean b = stmt.execute(sql);
			return b;
			
	}

?

?还有依据学号删除一名学生的信息

?

public boolean deleteAStudent(int i) throws SQLException {
		// TODO Auto-generated method stub
		String sql = "delete from student where stu#='"+i+"'";
		Statement stmt = conn.createStatement();
		boolean b = stmt.execute(sql);	
		System.out.println("删除成功");
		return b;
	}

?

?修改一名学生的信息(学号不能变)

?

public boolean updateAStudent(int stu, String name, String sex, int phone,
			String address) throws SQLException {
		String sql = "update student "+
							"set stuname='"+name+"',sex='"+sex+"',phone#="+phone+",address='"+address+"'"+
							"where stu#="+stu;
		Statement stmt = conn.createStatement();
		boolean b = stmt.execute(sql);	
		System.out.println("更新成功");
		return b;
	}

?

?这一步就是给servlet提供对数据库操作的接口

第三部,也是重点,就是servlet的编写

1.负责查询的servlet最简单,因为它不需要接收参数,它的职能就是调用数据库操作类中selectAllStudent方法,然后将结果集规范地显示出来,它在每一列(代表一名学生)中提供两个链接,分别是删除和编辑操作都将学号作为参数传到它请求的servlet中。

?

				out.print("<td>"+set.getInt(1)+"</td>");
				out.print("<td>"+set.getString(2)+"</td>");
				out.print("<td>"+set.getString(3)+"</td>");
				out.print("<td>"+set.getLong(4)+"</td>");
				out.print("<td>"+set.getString(5)+"</td>");
				out.print("<td><a href='deleteServlet?stu="+set.getInt(1)+"'>删除</a>|<a href='updateServlet?stu="+set.getInt(1)+"'>修改</a></td>");

?

?

? 2.负责删除的servlet需要接收一个参数,就是学生的学号

int i = Integer.valueOf(request.getParameter("stu"));

? 将学号作为参数调用数据库操作类的deleteAStudent方法,方法执行结束后,请求查询的servlet,也就是直接返回主页

?

3.负责插入新学生信息的servlet用了两个,一个是用来输出表单让管理员填写学生信息,另一个接收前者发来的参数,并调用数据库的insertAStudent方法,顺便提供个返回主页的链接。

?

out.print("<h2>学生学籍管理系统</h2><hr/>");
			out.print("<p>编辑新学生信息</p>");
			out.print("<table border='0'>");
			out.print("<form action=insertOKServlet>");
			
			out.print("<tr><td>学号</td><td><input type='text' name='stu'/></td></tr>");
			out.print("<tr><td>姓名</td><td><input type='text' name='name'/></td></tr>");
			out.print("<tr><td>性别</td><td><input type='text' name='sex'/></td></tr>");
			out.print("<tr><td>电话</td><td><input type='text' name='phone'/></td></tr>");
			out.print("<tr><td>住址</td><td><input type='text' name='address'/></td></tr>");
			out.print("<tr><td><input type='submit' value='确定'/></td><td><input type='reset' value='重置'/></td></tr>");

			out.print("</form>");			
			out.print("</table><hr/>");
			out.print("<a href='selectServlet'>回到首页</a>");

?

int stu = Integer.valueOf(request.getParameter("stu"));
String name = request.getParameter("name");
String sex = request.getParameter("sex");
int phone = Integer.valueOf(request.getParameter("phone"));
String address = request.getParameter("address");
			
boolean b= Dao.excu().insertAStudent(stu,name,sex,phone,address);
?

?

?

?

4.仿照插入,提供两个servlet,第一个输出表单让管理员编辑学生信息,其中的默认值是请求selectAStudent方法得来的,另一个调用数据库的updateAStudent方法,顺便提供返回主页的链接。

			
			
			int i = Integer.valueOf(request.getParameter("stu"));

			ResultSet set = Dao.excu().selectAStudent(i);
			
			set.next();
			String name = set.getString(2);
			String sex = set.getString(3);
			long phone = set.getLong(4);
			String address = set.getString(5);
			
			
			out.print("<tr><td>学号</td><td><input type='hidden' name='stu' value="+i+"/></td></tr>");
			out.print("<tr><td>姓名</td><td><input type='text' name='name' value='"+name+"'/></td></tr>");
			out.print("<tr><td>性别</td><td><input type='text' name='sex' value='"+sex+"'/></td></tr>");
			out.print("<tr><td>电话</td><td><input type='text' name='phone' value="+phone+"/></td></tr>");
			out.print("<tr><td>住址</td><td><input type='text' name='address' value='"+address+"'/></td></tr>");
			out.print("<tr><td><input type='submit' value='确定'/></td><td><input type='reset' value='重置'/></td></tr>");
	
			out.print("</form>");			
			out.print("</table><hr/>");
			out.print("<a href='selectServlet'>回到首页</a>");
  相关解决方案