開發工具: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.org/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.org/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.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/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! 到這已經結束了,希望能幫到你!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293579.html
標籤:其他
上一篇:記錄學習自動化測驗的問題
下一篇:記錄,加學英文,1 day
