概述
项目思维导图如下:
Index2servlet不需要!
使用sqlServer建表脚本如下:
学生表:
建表
create table tb_students(
sid int primary key identity,
sname varchar(100),
steacher varchar(100),
sclass int,
shabbit varchar(200)
)
插数据
insert into tb_students values(
'小宝','晓哥',269,'唱歌,跳舞')
insert into tb_students values(
'小饿','晓哥',269,'唱歌,跳舞')
insert into tb_students values(
'小慧','晓哥',269,'唱歌,跳舞')
insert into tb_students values(
'小芳','胡哥',271,'唱歌,篮球')
insert into tb_students values(
'小慧','胡哥',271,'唱歌,足球')
教员表:
建表
create table tb_class(
cid int primary key identity,
cname int
)
查数据
insert into tb_class values(
269)
insert into tb_class values(
271)
insert into tb_class values(
280)
班级表:
建表
create table tb_teacher(
tid int primary key identity,
tname varchar(100)
)
插数据
insert into tb_teacher values(
'晓哥')
insert into tb_teacher values(
'胡哥')
insert into tb_teacher values(
'宝姐')
道方法代码如下:
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.entity.Class;
import com.entity.Students;
import com.entity.Teacher;
import com.util.DBHelper;
/**
* 方法类
*
* @author zjjt
*
*/
public class StudentsDao {
/**
* 查询全部学生的方法
*
* @return 返回的是学生
*/
public List<Students> getAll() {
List<Students> list = new ArrayList<Students>();
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement("select * from tb_students");
rs = ps.executeQuery();
while (rs.next()) {
Students s = new Students();
s.setSid(rs.getInt(1));
s.setSname(rs.getString(2));
s.setSah(rs.getString(3));
s.setSclass(rs.getString(4));
s.setTname(rs.getString(5));
list.add(s);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return list;
}
/**
* 查询全部教员的方法
*
* @return 返回的是教员
*/
public List<Teacher> getAllT() {
List<Teacher> list = new ArrayList<Teacher>();
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement("select * from tb_teacher");
rs = ps.executeQuery();
while (rs.next()) {
Teacher t = new Teacher();
t.setTid(rs.getInt(1));
t.setTname(rs.getString(2));
list.add(t);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return list;
}
/**
* 查询全部班级的方法
*
* @return 返回的是班级
*/
public List<Class> getAllC() {
List<Class> list = new ArrayList<Class>();
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement("select * from tb_class");
rs = ps.executeQuery();
while (rs.next()) {
Class c = new Class();
c.setCid(rs.getInt(1));
c.setSclazz(rs.getString(2));
list.add(c);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return list;
}
/**
* 主界面的分页
*
* @param pages
* @param pagesize
* @return
*/
public List<Students> getpage(int pages, int pagesize) {
List<Students> list = new ArrayList<Students>();
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement(
"select * from (select *,row_number() over(order by sid) as rowid from tb_students)as b where rowid between ? and ?");
ps.setInt(1, pages);
ps.setInt(2, pagesize);
rs = ps.executeQuery();
while (rs.next()) {
Students s = new Students();
s.setSid(rs.getInt(1));
s.setSname(rs.getString(2));
s.setSah(rs.getString(3));
s.setSclass(rs.getString(4));
s.setTname(rs.getString(5));
list.add(s);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return list;
}
/**
* 模糊查询的分页
*
* @param pages
* @param pagesize
* @param key1
* @param key2
* @param key3
* @return
*/
// 爱好 班级 教员
public List<Students> getpage(int pages, int pagesize, String key1, String key2, String key3) {
List<Students> list = new ArrayList<Students>();
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement(
"rn" + "select * from (select *,row_number() over(order by sid) as rowid from tb_studentsrn"
+ "where shabbit like ? rn" + "and sclass like ? and steacher like ?rn"
+ ")as b where rowid between ? and ?");
ps.setInt(4, pages);
ps.setInt(5, pagesize);
ps.setString(1, "%" + key1 + "%");
ps.setString(2, "%" + key2 + "%");
ps.setString(3, "%" + key3 + "%");
rs = ps.executeQuery();
while (rs.next()) {
Students s = new Students();
s.setSid(rs.getInt(1));
s.setSname(rs.getString(2));
s.setSah(rs.getString(3));
s.setSclass(rs.getString(4));
s.setTname(rs.getString(5));
list.add(s);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return list;
}
/**
* 删除学生的方法
*
* @param sid
* 要删除的学生的id
* @return 返回受影响的行数
*/
public int del(int sid) {
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
try {
ps = con.prepareStatement("delete from tb_students where sid=?");
ps.setInt(1, sid);
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, null);
}
return 0;
}
/**
* 增加学生的方法
*
* @param s
* 增加的学生
* @return 返回受影响的行数
*/
public int add(Students s) {
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
try {
ps = con.prepareStatement("insert into tb_students values(?,?,?,?)");
ps.setString(1, s.getSname());
ps.setString(2, s.getSah());
ps.setString(3, s.getSclass());
ps.setString(4, s.getTname());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, null);
}
return 0;
}
/**
* 根据id查询学生
*
* @param sid
* 要查询的学生的id
* @return 返回的是学生
*/
public Students byids(int sid) {
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement("select * from tb_students where sid=?");
ps.setInt(1, sid);
rs = ps.executeQuery();
while (rs.next()) {
Students s = new Students();
s.setSid(rs.getInt(1));
s.setSname(rs.getString(2));
s.setSah(rs.getString(3));
s.setSclass(rs.getString(4));
s.setTname(rs.getString(5));
return s;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return null;
}
/**
* 修改学生的方法
*
* @param s
* 要修改的学生
* @return 返回受影响的行数
*/
public int upd(Students s) {
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
try {
ps = con.prepareStatement("update tb_students set sname=?,shabbit=?,sclass=?,steacher=? where sid=?");
ps.setString(1, s.getSname());
ps.setString(2, s.getSah());
ps.setString(3, s.getSclass());
ps.setString(4, s.getTname());
ps.setInt(5, s.getSid());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, null);
}
return 0;
}
/**
* 模糊查询的方法
*
* @param key1
* @param key2
* @param key3
* @return
*/
public List<Students> getkey(String key1, String key2, String key3) {
List<Students> list = new ArrayList<Students>();
Connection con = DBHelper.getCon();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = con.prepareStatement(
"select * from tb_students where steacher like ? and sclass like ? and shabbit like ?");
ps.setString(1, "%" + key1 + "%");
ps.setString(2, "%" + key2 + "%");
ps.setString(3, "%" + key3 + "%");
rs = ps.executeQuery();
while (rs.next()) {
Students s = new Students();
s.setSid(rs.getInt(1));
s.setSname(rs.getString(2));
s.setSah(rs.getString(3));
s.setSclass(rs.getString(4));
s.setTname(rs.getString(5));
list.add(s);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return list;
}
}
首页效果如下:
1.教员和班级使用下拉框,学生爱好使用复选框
2.删除功能根据id删除学生,删除时会有confim提示框确定或取消删除
首页代码如下:
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#t1{
margin: auto;
text-align: center;
width: 600px;
height: 150px
}
table,tr,td{
border-collapse: collapse;
}
#inp{
text-align: center;
}
#p{
text-align: center;
}
/* #but{
background-color: orange;
} */
#go{
border: none;
}
#de{
border: none;
}
</style>
</head>
<body>
<div id="inp"><a href="add.jsp">新增</a></div>
<table border="" id="t1">
<form action="key.do">
<tr>
<td colspan="6">
教员:<select name="teacher">
<c:forEach var="i" items="${ allT }">
<option>${ i.tname }</option>
</c:forEach>
</select>
班级:<select name="sclass">
<c:forEach var="i" items="${ allC }">
<option>${ i.sclazz }</option>
</c:forEach>
</select>
学生爱好:<input type="checkbox" name="ah" value="篮球">篮球
<input type="checkbox" name="ah" value="唱歌">唱歌
<input type="checkbox" name="ah" value="足球">足球
<input type="checkbox" name="ah" value="跳舞">跳舞
<button id="but">查询</button>
</td>
</tr>
</form>
<tr>
<td>学生ID</td>
<td>学生姓名</td>
<td>学生教员</td>
<td>班级</td>
<td>学生爱好</td>
<td>操作</td>
</tr>
<c:forEach var="i" items="${ all }">
<tr>
<td>${ i.sid }</td>
<td>${ i.sname }</td>
<td>${ i.tname }</td>
<td>${ i.sclass }</td>
<td>${ i.sah }</td>
<td><button onclick="return del('${ i.sid }')" id="de">删除</button><a href="updshow.do?sid=${ i.sid }">修改</a></td>
</tr>
</c:forEach>
</table>
<div id="p">第${ pages }页,共${ max }页,总记录${ m }条,<a href="index.do?pid=1">首页</a>,<a href="index.do?pid=${ pages-1<1?1:pages-1 }">上一页</a>,<form action="index.do"><input style="width: 20px" name="pid"><button id="go">Go</button></form>,<a href="index.do?pid=${ pages+1>max?max:pages+1 }">下一页</a>,<a href="index.do?pid=${ max }">尾页</a></div>
<script>
//return del('${ i.sid }',1)
function del(id) {
var flag=window.confirm("您确定要删除吗?")
if(flag){
window.location.href="del.do?sid="+id;
}else{
window.location.href="index.do";
}
}
</script>
</body>
</html>
删除的servlet:
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.dao.StudentsDao;
@WebServlet("/del.do")
public class DelServlet 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 {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
int sid = Integer.parseInt(req.getParameter("sid"));
int i = new StudentsDao().del(sid);
if (i > 0) {
out.print("<script>alert('删除成功!');location.href='index.do'</script>");
} else {
out.print("<script>alert('删除失败!');location.href='index.do'</script>");
}
}
}
增加界面效果如下:
1.修改界面和增加界面一样,只是修改界面会根据学生id赋入要修改的学生的信息
增加servlet代码如下:
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.dao.StudentsDao;
import com.entity.student;
@WebServlet("/add.do")
public class AddServlet 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();
String sname = req.getParameter("sname");
String tname = req.getParameter("tname");
String sclazz = req.getParameter("sclazz");
String[] ah = req.getParameterValues("ah");
String sah = "";
for (String s : ah) {
sah += s + ",";
}
student s = new student(0, sname, sah, sclazz, tname);
int i = new StudentsDao().add(s);
if (i > 0) {
out.print("<script>alert('增加成功!');location.href='index.do'</script>");
} else {
out.print("<script>alert('增加失败!');location.href='index.do'</script>");
}
}
}
修改servlet如下:
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.dao.StudentsDao;
import com.entity.student;
@WebServlet("/upd.do")
public class UpdServlet 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 {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
String sname = req.getParameter("sname");
String[] ah = req.getParameterValues("ah");
String sah="";
for (String s : ah) {
sah+=s+",";
}
String sclass = req.getParameter("sclazz");
String tname = req.getParameter("tname");
int sid = Integer.parseInt(req.getParameter("sid"));
student s=new student(sid, sname, sah, sclass, tname);
int i = new StudentsDao().upd(s);
if(i>0) {
out.print("<script>alert('修改成功');location.href='index.do'</script>");
}else {
out.print("<script>alert('修改失败');location.href='index.do'</script>");
}
}
}
将爱好根据逗号切割(split())成为一个数组,遍历该数组,对每个复选框进行判断,遍历的值与复选框的值一致则默认选中
package com.Servlet;
import java.io.IOException;
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.dao.StudentsDao;
import com.entity.student;
@WebServlet("/updshow.do")
public class UpdShowServlet 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 {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
int sid = Integer.parseInt(req.getParameter("sid"));
student s = new StudentsDao().byids(sid);
String sah = s.getSah();
String[] split = sah.split(",");
req.setAttribute("s", s);
req.setAttribute("split", split);
req.getRequestDispatcher("upd.jsp").forward(req, resp);
}
}
模糊查询servlet如下:
1.模糊查询的关键字有三个:教员名称,班级名称,爱好
package com.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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.dao.StudentsDao;
import com.entity.student;
@WebServlet("/key.do")
public class KeyServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String teacher= req.getParameter("teacher");
String sah="";
String[] ah = req.getParameterValues("ah");
if(ah==null) {
sah="";
}else {
for (String s : ah) {
sah+=s+",";
}
}
String[] split = sah.split(",");
String sclass = req.getParameter("sclass");
String aid = req.getParameter("aid");
int pages=1;
if(aid!=null) {
pages=Integer.parseInt(aid);
}
int pagesize=2;
int begin=(pages-1)*pagesize+1;
int end=pages*pagesize;
int m=new StudentsDao().getkey(teacher, sclass, sah).size();
List<student> list2 = new StudentsDao().getkey(teacher,sclass,sah);
List<student> list = new StudentsDao().getpage(begin,end,sah,sclass,teacher);
//最大页码数
int max=(int)Math.ceil(m*1.0/pagesize);
req.setAttribute("list", list);
req.setAttribute("max", max);
req.setAttribute("pages", pages);
req.setAttribute("teacher", teacher);
req.setAttribute("sah", sah);
req.setAttribute("m", m);
req.setAttribute("split", split);
req.setAttribute("sclass", sclass);
req.getRequestDispatcher("mohu.jsp").forward(req, resp);
}
}
最后
以上就是愤怒店员为你收集整理的JSP简易增删改查的全部内容,希望文章能够帮你解决JSP简易增删改查所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复