使用jsp对数据库信息的增删改查

这篇博客展示了如何使用JSP进行数据库信息的增删改查操作,包括了初始页面展示、添加学生、更新信息的功能实现,并给出了相关代码如index.jsp、list1.jsp、add.jsp、update.jsp等,以及涉及的Student类、Dao、Service和Servlet的详细说明。

效果图:
初始页:
在这里插入图片描述
核心页:
在这里插入图片描述
增加学生:
在这里插入图片描述
修改:
在这里插入图片描述
代码:
index.jsp:

<%@ 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>
</head>
<body>
	<a href="stu?mark=query">查找全部学生</a>
	
</body>
</html>

list1.jsp:

<%@ 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>
<script type="text/javascript">	
</script>
</head>
<body>
		<center>
		<a href="add.jsp">增加学生</a><br/>
		
			<table border="1" width="50%">
				<tr>
					<th>姓名</th>
					<th>年龄</th>
					<th>身高</th>
					<th>操作</th>
				</tr>
				<c:forEach items="${list}" var="stu">
					<tr>
						<td>${stu.name}</td>
						<td>${stu.age}</td>
						<td>${stu.height}</td>
						<td><a href="stu?mark=update&sid=${stu.sid}">修改</a>|<a href="stu?mark=delete&sid=${stu.sid}">删除</a></td>
					
					</tr>
				</c:forEach>
			
			</table>		
	
	
	</center>

</body>
</html>

add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<center>
		<h5>---添加学生信息---</h5>
		<form action="stu">
			<input type="hidden" name="mark" value="add"/>
			
			<table>
				<tr>
					<td>姓名:</td>
					<td><input name="username"/></td>
				</tr>
				<tr>
					<td>年龄:</td>
					<td><input name="age"/></td>
				</tr>
				<tr>
					<td>身高:</td>
					<td><input name="height"/></td>
				</tr>
				<tr>
					<td colspan="2"align="center"><input type="submit" value="增加"></td>
					
				</tr>
			</table>
		
		</form>
	</center>

</body>
</html>

update.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<center>
		<h5>---修改学生信息---</h5>
		<form action="stu">
			<input type="hidden" name="mark" value="updateInfo"/>
			<input type="hidden" name="sid" value="${stu.sid}"/>
			<table>
				<tr>
					<td>姓名:</td>
					<td><input name="username" value="${stu.name}"/></td>
				</tr>
				<tr>
					<td>年龄:</td>
					<td><input name="age" value="${stu.age}"/></td>
				</tr>
				<tr>
					<td>身高:</td>
					<td><input name="height" value="${stu.height}"/></td>
				</tr>
				<tr>
					<td colspan="2"align="center"><input type="submit" value="修改"></td>
					
				</tr>
			</table>
		
		</form>
	</center>

</body>
</html>

Student.java:

package text.bean;

public class Student {

	private Integer sid;
	private String name;
	private Integer age;
	private Integer height;
	public Integer getSid() {
		return sid;
	}
	public void setSid(Integer sid) {
		this.sid = sid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Integer getHeight() {
		return height;
	}
	public void setHeight(Integer height) {
		this.height = height;
	}
}

StudentDao.java:

package text.dao;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;

import text.v2.c3p0.ComboPooledDataSource;
import text.bean.Student;

public class StudentDao {
	@Test
	public void method() {
		List<Student> list = findAll();
		for(Student stu : list) {
			
			System.out.println(stu.getName());
		}
		
	}
	@Test
	public void method01() {
		Student stu = findById(5);
		System.out.println(stu.getName());
		
	}
	
	/*
	 * 查找全部学生
	 * *
	 */
	public List<Student> findAll(){
		//数据源
		ComboPooledDataSource ds = new ComboPooledDataSource();
		//dbutils的核心类
		QueryRunner qr = new QueryRunner(ds);
		List<Student> list = null;
		try {
			list = qr.query("select * from students", new BeanListHandler<Student>(Student.class));
		} catch (SQLException e) {			
			e.printStackTrace();
			return null;
		}
		return list;
		
	}
	/*
	 * 一个学生对象
	 * */
	public Student findById(Integer sid) {
		// 数据源
		ComboPooledDataSource ds = new ComboPooledDataSource();
		// dbutils的核心类
		QueryRunner qr = new QueryRunner(ds);
		Student student = null;
		try {
			student = qr.query("select * from students where sid=?", new BeanHandler<Student>(Student.class),sid);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return student;
	}
	/*
	 * 根据ID删除
	 * */
	public Integer DeleteById(Integer sid) {
		// 数据源
		ComboPooledDataSource ds = new ComboPooledDataSource();
		// dbutils的核心类
		QueryRunner qr = new QueryRunner(ds);
		int count = 0;
		try {
			count = qr.update("delete from students where sid=?",sid);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return count;
	}
	/*
	 * 更改学生的信息
	 * */
	public int updateInfo(Student stu) {
		// 数据源
		ComboPooledDataSource ds = new ComboPooledDataSource();
		// dbutils的核心类
		QueryRunner qr = new QueryRunner(ds);
		int count = 0;
		try {
			count = qr.update("update students set name=?,age=?,height=? where sid=?", 
					stu.getName(), stu.getAge(), stu.getHeight(),
					stu.getSid());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return count;
	}
	
	/*
	 * 添加学生
	 */
	public int add(Student stu) {
		// 数据源
		ComboPooledDataSource ds = new ComboPooledDataSource();
		// dbutils的核心类
		QueryRunner qr = new QueryRunner(ds);
		int count = 0;
		try {
			count = qr.update("insert into students values(null,?,?,?)", stu.getName(), stu.getAge(),
					stu.getHeight());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return count;
	}

}

StudentService.java:

package text.service;

import java.util.List;

import text.bean.Student;
import text.dao.StudentDao;
/*
 * 业务层
 * */
public class StudentService {
	
	/*
	 * 查找全部的学生
	 * */
	public List<Student> findAll(){
		
		return new StudentDao().findAll();
	}
	
	/*
	 * 根据ID值进行查找
	 * */
	public Student findById(Integer sid){
		
		return new StudentDao().findById(sid);
	}
	/*
	 * 根据ID值进行删除
	 * */
	public Integer deleteById(Integer sid){
		
		return new StudentDao().DeleteById(sid);
	}
	/*
	 * 修改学生信息
	 * */
	public int updateInfo(Student stu) {
		return new StudentDao().updateInfo(stu);
	}
	/*
	 * 添加学生信息
	 * */
	public int add(Student stu) {
		
		return new StudentDao().add(stu);
	}
	
	
	

}

StudentServlet.java:

package text.web.servlet;

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

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

import text.bean.Student;
import text.service.StudentService;


public class StudentServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String methodName = request.getParameter("mark");
		if("query".equals(methodName)) {
			//查找全部学生
			findAll(request,response);
		}else if("add".equals(methodName)) {
			
			add(request,response);
		}else if("delete".equals(methodName)) {			
			delete(request,response);
		}else if("update".equals(methodName)) {
			
			update(request,response);
		}else if("updateInfo".equals(methodName)) {
			
			updateInfo(request,response);
		}
	}
	/*
	 * 更改学生的信息
	 * */
	private void updateInfo(HttpServletRequest request, HttpServletResponse response) {
		Student stu = new Student();
		stu.setSid(Integer.parseInt(request.getParameter("sid")));
		stu.setName(request.getParameter("username"));
		stu.setAge(Integer.parseInt(request.getParameter("age")));
		stu.setHeight(Integer.parseInt(request.getParameter("height")));
		int count = new StudentService().updateInfo(stu);
		if(count>0) {
			findAll(request, response);
		}
		
	}

	/*
	 * 更新学生
	 * */
	private void update(HttpServletRequest request, HttpServletResponse response) {
		// 两个连接 修改 修改完毕提交
		Integer sid = Integer.parseInt(request.getParameter("sid"));
		// 修改
		Student stu = new StudentService().findById(sid);
		try {
			request.setAttribute("stu", stu);
			request.getRequestDispatcher("update.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
	}


	/*
	 * 删除学生
	 * */
	private void delete(HttpServletRequest request, HttpServletResponse response) {
		Integer sid = Integer.parseInt(request.getParameter("sid"));
		Integer count = new StudentService().deleteById(sid);
		if(count>0) {
			findAll(request,response);
		}
		
	}



	/*
	 * 添加学生
	 * */
	private void add(HttpServletRequest request, HttpServletResponse response) {
		Student stu = new Student();
		stu.setName(request.getParameter("username"));
		stu.setAge(Integer.parseInt(request.getParameter("age")));
		stu.setHeight(Integer.parseInt(request.getParameter("height")));
		int count = new StudentService().add(stu);
		if(count>0) {
			findAll(request, response);
		}
		
	}




	/*
	 * 查找全部学生
	 * */
	private void findAll(HttpServletRequest request, HttpServletResponse response) {
		//System.out.println("查询学生");
		List<Student> list = new StudentService().findAll();
		if(list!=null) {
			//请求转发
			try {
				request.setAttribute("list", list);
				request.getRequestDispatcher("list1.jsp").forward(request, response);
			} catch (Exception e) {
				
				e.printStackTrace();
			}
			
		}
		
		
	}





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

}

数据库:
在这里插入图片描述

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值