开发工具:eclipse    数据库:Oracle

项目分析:

数据库的搭建:

 项目结构:

 一,主界面(采用无刷新的方法,该方法需要用到jQuery插件)

 界面展示:(分页+删除+模糊查询(教员+班级+爱好))

 代码展示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3/TR/html4/loose.dtd">
<html>
<script src="js/jquery-3.3.1.js"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>

<style type="text/css">

	table,tr{
	border-collapse: collapse;
		}
	td{
	text-align: center;
		}
	.aa{  
    background: white;  
    text-align: center;  
        }  
	
</style>

<body>
	<h4 align="center"><a href="AddStudent.jsp">增加学生</a></h4>
	<div class="aa">
	教员:
	<select name="tt1" id="tt1">
		<option value="">选择教员</option>
		<option value="华华">华华</option>
		<option value="晓哥">晓哥</option>
	</select> 班级:
	<select name="cc1" id="cc1">
		<option value="">选择班级</option>
		<option value="t269">t269</option>
		<option value="t270">t270</option>
	</select> 爱好:
	<input type="checkbox" name="h1" value="篮球" class="hobby">篮球
	<input type="checkbox" name="h2" value="台球" class="hobby">台球
	<input type="checkbox" name="h3" value="棒球" class="hobby">棒球
	<input type="checkbox" name="h4" value="铅球" class="hobby">铅球

	<button id="b1" onclick="loay()">查询</button>
	</div>

	<table  border="" width="600px" height="200px" align="center">
		<tr>
			<td>学生ID</td>
			<td>学生姓名</td>
			<td>带班教员</td>
			<td>所在班级</td>
			<td>学生爱好</td>
			<td>修改操作</td>
			<td>删除操作</td>
		</tr>
	</table>
	<div class="aa">
	当前为
	<span id="myb">页</span> 
	总页数
	<span id="mya">页</span> 

	<button onclick="loay('-')" id="p1">上一页</button>
	<span id="myc"></span>
	<button onclick="loay('+')" id="p2">下一页</button>
	</div>

	<script>
		//(当前页数)
	    var pages=1;
		//一个页面留几条
		var pageSize=3;
		//总页数
		var max=1;
		//集合
		var vals="";
	
		function loay(res){
			if(res=="+"){
				pages++;
			}
			if(res=="-"){
				pages--;
			}
			if(pages<=0)pages=1;
			if(pages>max)pages=max;
			//获取复选框值的方法
			$.each($('input:checkbox:checked'),function(){
				vals=vals+$(this).val();
			});
			console.log(vals)
			$.get("allstu.do",{
				pid:pages,
				tt1:$("#tt1").val(),
				cc1:$("#cc1").val(),
				val:vals
			},function(obb){ 
				console.log(obb)
				$(".a").remove();
				for(var i of obb.obs){
					$("table").append("<tr class='a'><td>"+i.ssid+"</td><td>"+i.sname+"</td><td>"+i.steacher+"</td><td>"+i.sclass+"</td><td>"+i.shobby+"</td><td><a href='allupdstu.do?id="+i.ssid+"'>修改</a></td><td><a href='delstu.do?id="+i.ssid+"'>删除</a></td></tr>")
				} 
				max=obb.maxPage,
				sm=obb.sm
				//当前页数
				$("#myb").html(pages)
				//总页数
				$("#mya").html(max)
				//分页
				$("#myc").html(pages+"/"+max)
				
			},"json")
			
		} 
		
		//jquery的加载事件
		$(function(){
			loay()
		})
	
	</script>

</body>
</html>

二,增加

界面展示:

代码展示:


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>增加学生</title>

<style type="text/css">

	table,tr{
	border-collapse: collapse;
		}
	td{
	text-align: center;
		}

</style>

</head>
<body>
<h4 align="center">新增界面      <a href="Index.jsp">返回首页</a></h4>

<form action="addstu.do">
<table border="" width="600px" height="200px" align="center">
<tr>
<td>名字 </td>
<td><input type="text" name="sname"></td>
</tr>
<tr>
<td>教员:</td>
<td>
<select name="steacher">
<option value="">--请选择教员--</option>
<option value="华华">华华</option>
<option value="晓哥">晓哥</option>
</select>
</td>
</tr>
<tr>
<td>班级:</td>
<td>
<select name="sclass">
<option value="null">--请选择班级--</option>
<option value="t269">t269</option>
<option value="t270">t270</option>
</select>
</td>
</tr>
<tr>
<td>
爱好:</td>
<td>
<input type="checkbox" name="shobby" value="篮球" >篮球
<input type="checkbox" name="shobby" value="台球" >台球
<input type="checkbox" name="shobby" value="棒球" >棒球
<input type="checkbox" name="shobby" value="铅球" >铅球
</td>
</tr>
<tr>
<td>操作:</td>
<td><button>确认</button> <input type="reset"/></td>
</tr>
</table>
</form>

</body>
</html>

三,修改 

界面展示:

代码展示:


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@taglib prefix="c"  uri="http://java.sun/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改界面</title>
<style type="text/css">
table,tr{
border-collapse: collapse;
}
td{
text-align: center;
}


</style>
</head>
<body>
<h4 align="center">修改界面      <a href="Index.jsp">返回首页</a></h4>
<form action="updstu.do">
<table border="" width="600px" height="200px" align="center">
<tr>
<input type="hidden"  name="id" value="${stu.ssid}">
<td>名字</td>
<td> <input type="text" name="sname" value="${stu.sname }"></td>
</tr>
<tr>
<td>教员:</td>
<td>
<select name="steacher">
<option value="华华"  ${stu.steacher=="华华"?"selected":"" }>华华</option>
<option value="晓哥"  ${stu.steacher=="晓哥"?"selected":"" }>晓哥</option>
</select>
</td>
</tr>
<tr>
<td>班级:</td>
<td>
<select name="sclass">
<option value="t269" ${stu.sclass=="t269"?"selected":"" }>t269</option>
<option value="t270" ${stu.sclass=="t270"?"selected":"" }>t270</option>
</select>
</td>
</tr>
<tr>
<td>
爱好:</td>
<td>
<input type="checkbox" name="shobby" value="篮球" <c:forEach var="i" items="${ shobbys }">
<c:if test="${ i=='篮球'}"> checked
</c:if>
</c:forEach>>篮球

<input type="checkbox" name="shobby" value="台球" <c:forEach var="i" items="${ shobbys }">
<c:if test="${ i=='台球'}"> checked
</c:if>
</c:forEach>>台球

<input type="checkbox" name="shobby" value="棒球" <c:forEach var="i" items="${ shobbys }">
<c:if test="${ i=='棒球'}"> checked
</c:if>
</c:forEach>>棒球

<input type="checkbox" name="shobby" value="铅球" <c:forEach var="i" items="${ shobbys }">
<c:if test="${ i=='铅球'}"> checked
</c:if>
</c:forEach>>铅球

</td>
</tr>
<tr>
<td>操作:</td>
<td><button>确认修改</button></td>
</tr>
</table>

</form>

</body>
</html>

四,Dao包和Servlet包的分享

Dao包

package com.Dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.Dao.IStudentDao;

import entity.Student;
import util.DBHelper;

public class StudentDao implements IStudentDao{

	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;

	// 模糊查询(教员+班级+爱好)
	public List<Student> GetAll(String key1, String key2, String key3, int begin, int end) {
		List<Student> list = new ArrayList<Student>();
		try {
			con = DBHelper.getCon();
			String sql = "SELECT * FROM (SELECT a.*,ROWNUM rid FROM d_student a WHERE steacher LIKE ? AND  sclass LIKE ? AND shobby LIKE ? )b WHERE rid BETWEEN ? AND ?";
			ps = con.prepareStatement(sql);
			ps.setString(1, "%" + key1 + "%");
			ps.setString(2, "%" + key2 + "%");
			ps.setString(3, "%" + key3 + "%");
			ps.setInt(4, begin);
			ps.setInt(5, end);
			rs = ps.executeQuery();
			while (rs.next()) {
				Student p = new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),
						rs.getString(5));
				list.add(p);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClose(con, ps, rs);
		}
		return list;
	}
	
	// 根据学生id查询学生信息
	public Student GetAllUpd(int id) {
		try {
			con = DBHelper.getCon();
			String sql = "SELECT * FROM d_student where ssid=?";
			ps = con.prepareStatement(sql);
			ps.setInt(1, id);
			rs = ps.executeQuery();
			while (rs.next()) {
				Student p = new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),
						rs.getString(5));
				return p;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClose(con, ps, rs);
		}
		return null;
	}

	// 页数(教员+班级+爱好)
	public int GetPage(String key1, String key2, String key3) {
		try {
			con = DBHelper.getCon();
			String sql = "SELECT a.*,ROWNUM r FROM d_student a WHERE steacher LIKE ? AND  sclass LIKE ? AND shobby LIKE ?";
			ps = con.prepareStatement(sql);
			ps.setString(1, "%" + key1 + "%");
			ps.setString(2, "%" + key2 + "%");
			ps.setString(3, "%" + key3 + "%");
			rs = ps.executeQuery();
			int sum = 0;
			while (rs.next()) {
				sum++;
			}
			return sum;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClose(con, ps, rs);
		}
		return 0;
	}
	
	// 总条数
	public int GetSm() {
		try {
			con = DBHelper.getCon();
			String sql = "select count(*) from d_student";
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
			int sum = 0;
			while (rs.next()) {
				sum++;
			}
			return sum;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClose(con, ps, rs);
		}
		return 0;
	}
	
	//增加
	public int AddStu(Student s) {
		try {
			con=DBHelper.getCon();
			String sql="insert into d_student values(?,?,?,?,?)";
			ps = con.prepareStatement(sql);
			ps.setInt(1, s.getSsid());
			ps.setString(2, s.getSname());
			ps.setString(3, s.getSteacher());
			ps.setString(4, s.getSclass());
			ps.setString(5, s.getShobby());
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, null);
		}
		return 0;
		}
	
	//删除
	public int DelStu(int id) {
		try {
			con=DBHelper.getCon();
			String sql = "delete d_student where ssid=?";
			ps = con.prepareStatement(sql);
			ps.setInt(1, id);
			   return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, null);
		}
			return 0;
		}	
	
	//修改查询
	public List<Student> GetUpdStu(int id) {
		List<Student> list = new ArrayList<Student>();
		try {
			con = DBHelper.getCon();
			String sql = "SELECT * FROM  d_student where ssid=?";
			ps = con.prepareStatement(sql);
			ps.setInt(1, id);
			rs = ps.executeQuery();
			if (rs.next()) {
				Student s = new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
				list.add(s);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClose(con, ps, rs);
		}
		return list;
	}
	
	//修改
	public int UpdStu(Student s) {
		try {
			con = DBHelper.getCon();
			String sql = "update d_student set sname=?,steacher=?,sclass=?,shobby=? where ssid=? ";
			ps = con.prepareStatement(sql);  
			ps.setString(1, s.getSname());
			ps.setString(2, s.getSteacher());
			ps.setString(3, s.getSclass());
			ps.setString(4, s.getShobby());
			ps.setInt(5, s.getSsid());
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClose(con, ps, null);
		}
		return 0;
	}

	//取最大id
	public int MaxStu() {
		try {
			con=DBHelper.getCon();
			ps=con.prepareStatement("select nvl(max(ssid),0)+1 from d_student");
			rs=ps.executeQuery();
			if(rs.next()) {
				return rs.getInt(1);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return 0;
	}
	
}

主页面

package com.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Biz.IStudentBiz;
import com.Biz.impl.StudentBiz;
import com.alibaba.fastjson.JSON;

import entity.Student;

/**
 * 主頁面查詢 
 */
@WebServlet("/allstu.do")
public class AllStudentServlet extends HttpServlet {

	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		resp.setContentType("text/html;charset=utf-8");
		req.setCharacterEncoding("utf-8");

		PrintWriter out = resp.getWriter();
		IStudentBiz isd = new StudentBiz();


		String key1 = req.getParameter("tt1")==null?"":req.getParameter("tt1");
		String key2 = req.getParameter("cc1")==null?"":req.getParameter("cc1");
		String pid = req.getParameter("pid")==null?"1":req.getParameter("pid");
		
		String vals = req.getParameter("val");
		System.out.println("爱好数组的值"+vals);
			if(vals==null) {
				vals="";
			}
		System.out.println(key1+key2+vals+"查询的关键字");

		// 定义当前的页数
		int pages = 1;
		// 定义当前每页显示几条
		int pageSize = 3;
		// 定义最大的页数
		int max = 1;

		max = (int) Math.ceil(isd.GetPage(key1, key2, vals) * 1.0 / pageSize);
		System.out.println("查询出来的页数"+max);
		
		if (pid != null) {
			pages = Integer.parseInt(pid);
		}
			
		int begin = (pages - 1) * pageSize + 1;
		int end = pages * pageSize;
		
		List<Student> obs = isd.GetAll(key1, key2, vals, begin, end);
		System.out.println("查询出来的结果"+obs);
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		map.put("obs", obs);
		map.put("maxPage", max);
		
		out.print(JSON.toJSONString(map));
		

	}

}

增加

package com.Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Biz.IStudentBiz;
import com.Biz.impl.StudentBiz;

import entity.Student;

/**
 * 增加学生
 */
@WebServlet("/addstu.do")
public class AddStudentServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		
		IStudentBiz isb = new StudentBiz();
		request.setCharacterEncoding("utf-8");
		
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		String sname=request.getParameter("sname");
		String steacher=request.getParameter("steacher");
		String sclass=request.getParameter("sclass");
		String[] shobby=request.getParameterValues("shobby");
		
		String shobbys = "" ;
		for (String a : shobby) {
			shobbys+=a+" ";
		}

		if(isb.AddStu(new Student(isb.MaxStu(), sname, steacher, sclass, shobbys))>0) {
			out.print("<script>alert('增加成功');location.href='Index.jsp'</script>");
		}else {
			out.print("<script>alert('增加失败');location.href='Index.jsp'</script>");
		}
		
	}
}

删除

package com.Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Biz.IStudentBiz;
import com.Biz.impl.StudentBiz;

/**
 * 删除学生
 */
@WebServlet("/delstu.do")
public class DelStudentServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String id = request.getParameter("id");
		
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		int sid=Integer.parseInt(id);
		IStudentBiz isb=new StudentBiz();
		
		if(isb.DelStu(sid)>0) {
			out.print("<script>alert('删除成功');location.href='Index.jsp';</script>");
		}else {
			out.print("<script>alert('删除失败');location.href='Index.jsp';</script>");
		}
		
	}

}

修改查询

package com.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Biz.IStudentBiz;
import com.Biz.impl.StudentBiz;
import com.alibaba.fastjson.JSON;

import entity.Student;

/**
 * 修改显示界面
 */
@WebServlet("/allupdstu.do")
public class AllUpdStudentServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		IStudentBiz isb=new StudentBiz();
		
		int ssid=Integer.parseInt(request.getParameter("id"));
		
		Student stu=isb.GetAllUpd(ssid);
		String shobby = stu.getShobby();
		//切割
	  	String[] shobbys = shobby.split(" ");
		
		request.setAttribute("stu", stu);
		request.setAttribute("shobbys", shobbys);
	    request.getRequestDispatcher("UpdStudent.jsp").forward(request, response);
	    
	}

}

修改

package com.Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Biz.IStudentBiz;
import com.Biz.impl.StudentBiz;

import entity.Student;

/**
 * 修改内容
 */
@WebServlet("/updstu.do")
public class UpdStudentServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		IStudentBiz isb=new StudentBiz();
		
		int ssid=Integer.parseInt(request.getParameter("id"));
		String sname=request.getParameter("sname");
		String steacher=request.getParameter("steacher");
		String sclass=request.getParameter("sclass");
		String[] shobby=request.getParameterValues("shobby");
		String shobbys = "" ;
		for (String a : shobby) {
			shobbys+=a+" ";
		}
		if(isb.UpdStu(new Student(ssid, sname, steacher, sclass, shobbys))>0) {
			out.print("<script>alert('修改成功');location.href='Index.jsp'</script>");
		}else {
			out.print("<script>alert('修改失败');location.href='Index.jsp'</script>");
		}
	}

}

 OK!  到这已经结束了,希望能帮到你!!!

更多推荐

JAVA基础之增删改查