关于学生的增删改查

导读:本篇文章讲解 关于学生的增删改查,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

首先看下我们需要做哪些功能

关于学生的增删改查

 需要建立的包和类

建立三个表

学生表,老师表,班级表

关于学生的增删改查

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"%>

over~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/12256.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!