一个学生的增删改查

先来一个表看看需要的功能

需要建立的包和类

建立三个表

学生表,老师表,班级表

 index界面的代码

<%@ 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>Insert title here</title>
<style type="text/css">
table,tr{
border-collapse: collapse;
 
}
td{
text-align: center;}
</style>
</head>
<body>
<h3 align="center"><a href="add.jsp">点我新增学生</a></h3>
	<table border="" width="1000px" height="400px" align="center">
	<tr><td colspan="6">
	<form action="mh.do">
	教员:<select name="tea">
	<option value="null">--请选择教员--</option>
	<c:forEach var="t" items="${list2 }">
	<option value="${t.tname }" ${t.tname==tea?"selected":"" }></option>
	</c:forEach>
	</select>
	
	班级:<select name="cla">
	<option value="null">--请选择班级--</option>
	<c:forEach var="b" items="${list1 }">
	<option value="${b.cclass }" ${b.cclass==cla?"selected":"" }></option>
	</c:forEach>
	</select>
	
	爱好:
<input type="checkbox" name="sah" value="吃饭" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='吃饭' }"> checked
</c:if>
</c:forEach>>吃饭
<input type="checkbox" name="sah" value="睡觉" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='睡觉' }"> checked
</c:if>
</c:forEach>>睡觉
<input type="checkbox" name="sah" value="游戏" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='游戏' }"> checked
</c:if>
</c:forEach>>游戏
<input type="checkbox" name="sah" value="听歌" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='听歌' }"> checked
</c:if>
</c:forEach>>游听歌
	<button>查询</button>
	</form>
 
	</td>
	</tr>
 
	<tr>
	<td>学生id</td>
	<td>学生姓名</td>
	<td>学生老师</td>
	<td>学生班级</td>
	<td>学生爱好</td>
	<td>操作</td>
	</tr>
	<c:forEach var="i" items="${list }">
	<tr>
	<td>${i.sid }</td>
	<td>${i.sname }</td>
	<td>${i.steach }</td>
	<td>${i.sclass }</td>
	<td>${i.sah }</td>
	<td><a href="get.do?sid=${i.sid }">修改</a>&nbsp;<a onclick="return confirm(' 请确认是否删除 ')" href="del.do?sid=${i.sid }">删除</a></td>
	</tr>
	
	</c:forEach>
	</table>
	
</body>
</html>

记得导入标签,不然foreach标签无法实现!!!

再看看我们的数据库操作类的方法

每个方法的名称都标注好了

package com.Dao;
/**
 * 数据库操作类
 * @author zjjt
 *
 */
 
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.Student;
import com.entity.Teacher;
import com.util.DBHelper;
 
public class StudentDao implements IStudentDao{
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	
	/**
	 * 增加的方法
	 * @param s
	 * @return
	 */
	public int addStu(Student s) {
		try {
			con=DBHelper.getCon();
			String sql="insert into student values(?,?,?,?)";
			ps=con.prepareStatement(sql);
			ps.setString(1, s.getSname());
			ps.setString(2, s.getSteach());
			ps.setString(3, s.getSclass());
			ps.setString(4, s.getSah());
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return 0;
	}
	
	/**
	 * 删除的方法
	 * @param sid
	 * @return
	 */
	public int delStu(int sid) {
		try {
			con=DBHelper.getCon();
			String sql="delete student where sid=?";
			ps=con.prepareStatement(sql);
			ps.setInt(1, sid);
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return 0;
	}
	/**
	 * 修改的方法
	 * @param s
	 * @return
	 */
	public int updStu(Student s) {
		try {
			con=DBHelper.getCon();
			String sql="update student set sname=?,steach=?,sclass=?,sah=? where sid=?";
			ps=con.prepareStatement(sql);
			ps.setString(1, s.getSname());
			ps.setString(2, s.getSteach());
			ps.setString(3, s.getSclass());
			ps.setString(4, s.getSah());
			ps.setInt(5, s.getSid());
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return 0;
	}
	
	/**
	 * 获得所有学生的方法
	 * @return
	 */
	public List<Student> getAll() {
		List<Student> list=new ArrayList<Student>();
		try {
			con=DBHelper.getCon();
			String sql="select * from student";
			ps=con.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()) {
				int id=rs.getInt(1);
				String name=rs.getString(2);
				String teach=rs.getString(3);
				String cla=rs.getString(4);
				String ah=rs.getString(5);
				Student s=new Student(id, name, teach, cla, ah);
				list.add(s);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return list;
	}
	
	/**
	 * 通过id查询学生
	 * @param sid
	 * @return
	 */
	public Student getById(int sid) {
		try {
			con=DBHelper.getCon();
			String sql="select * from student where sid=?";
			ps=con.prepareStatement(sql);
			ps.setInt(1, sid);
			rs=ps.executeQuery();
			while(rs.next()) {
				int id=rs.getInt(1);
				String name=rs.getString(2);
				String teach=rs.getString(3);
				String cla=rs.getString(4);
				String ah=rs.getString(5);
				Student s=new Student(id, name, teach, cla, ah);
				return s;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return null;
	}
	
	/**
	 * 模糊查询的方法
	 * @param tea
	 * @param cla
	 * @param ah
	 * @return
	 */
	public List<Student> getAll(String tea,String cla,String ah){
		List<Student> list=new ArrayList<>();
		try {
			con=DBHelper.getCon();
			String sql="select * from student where steach like ? and sclass like ? and sah like ?";
			ps=con.prepareStatement(sql);
			ps.setString(1, "%"+tea+"%");
			ps.setString(2, "%"+cla+"%");
			ps.setString(3, "%"+ah+"%");
			rs=ps.executeQuery();
			while(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;
	}
	
	/**
	 * 获得所有的班级
	 * @return
	 */
	public List<Class> getCla(){
		List<Class> list=new ArrayList<>();
		try {
			con=DBHelper.getCon();
			String sql="select * from class";
			ps=con.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()) {
				Class c=new Class(rs.getInt(1), rs.getString(2));
				list.add(c);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return list;
	}
	
	/**
	 * 获得所有老师
	 * @return
	 */
	public List<Teacher> getTea(){
		List<Teacher> list=new ArrayList<>();
		try {
			con=DBHelper.getCon();
			String sql="select * from teacher";
			ps=con.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()) {
				Teacher t=new Teacher(rs.getInt(1), rs.getString(2));
				list.add(t);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return list;
	}
	
	
	
	
	
}

删除的界面 

 

这里运用了一个消息询问框,方便点错了可以取消

代码为

onclick="return confirm(' 请确认是否删除 ')"

再者就是修改界面

 

<%@ 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>Insert title here</title>
<style type="text/css">
table,tr{
border-collapse: collapse;
}
td{
text-align: center;
}
</style>
</head>
<body>
 
<h3 align="center">修改页面</h3>
<form action="upd.do">
<table border="" width="500px" height="400px" align="center">
<input type="hidden"  name="sid" value="${s.sid}">
<td>名字</td>
<td> <input type="text" name="sname" value="${s.sname }"></td>
</tr>
<tr>
<td>教员:</td>
<td>
<select name="yname">
<option value="教1"  ${s.steach=="教1"?"selected":"" }>教1</option>
<option value="教2"  ${s.steach=="教2"?"selected":"" }>教2</option>
<option value="教3"  ${s.steach=="教3"?"selected":"" }>教3</option>
</select>
</td>
</tr>
<tr>
<td>班级:</td>
<td>
<select name="bname">
<option value="1班" ${s.sclass=="1班"?"selected":"" }>1班</option>
<option value="2班" ${s.sclass=="2班"?"selected":"" }>2班</option>
<option value="3班" ${s.sclass=="3班"?"selected":"" }>3班</option>
</select>
</td>
</tr>
<tr>
<td>
爱好:</td>
<td>
<input type="checkbox" name="sah" value="吃饭" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='吃饭' }"> checked
</c:if>
</c:forEach>>吃饭
<input type="checkbox" name="sah" value="睡觉" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='睡觉' }"> checked
</c:if>
</c:forEach>>睡觉
<input type="checkbox" name="sah" value="游戏" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='游戏' }"> checked
</c:if>
</c:forEach>>游戏
<input type="checkbox" name="sah" value="听歌" <c:forEach var="i" items="${ ah }">
<c:if test="${ i=='听歌' }"> checked
</c:if>
</c:forEach>>听歌
</td>
</tr>
<tr>
<td>按键</td>
<td><button>确认修改</button></td>
</tr>
</table>
 
</form>
<h3 align="center"><a href="index.do">Return....</a></h3>
 
</body>
</html>

 

写法和主界面遍历数据库的数据差不多,都需要运用到标签库

导入语句

 <%@taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值