开发工具: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基础之增删改查
发布评论