我是靠谱客的博主 愤怒店员,最近开发中收集的这篇文章主要介绍JSP简易增删改查,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

项目思维导图如下:

 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简易增删改查所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部