先来一个表看看需要的功能
需要建立的包和类
建立三个表
学生表,老师表,班级表
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> <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"%>