当前位置:网站首页>Student增删gaih
Student增删gaih
2022-06-29 08:51:00 【lion tow】
今天和大家分享一个简单的web小项目,废话不读说我们直接开干:
目录
一、思路示意图

实现思路:
这里我们使用的是Mysql数据库 建立本次项目所需要的四个表 学生表、教师表、班级表、以及爱好表
本次使用开发工具eclipse 导入所需的jar包以及项目包:

二、编码工作
1.util包DBHelper类:

package com.zq.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 提供了一组获得或关闭数据库对象的方法
*
*/
public class DBHelper {
private static String driver;
private static String url;
private static String user;
private static String password;
static {// 静态块执行一次,加载 驱动一次
try {
InputStream is = DBHelper.class
.getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(is);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("pwd");
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 获得数据连接对象
*
* @return
*/
public static Connection getConnection() {
try {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void close(ResultSet rs) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Statement stmt) {
if (null != stmt) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn) {
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void myClose(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(rs!=null) {
rs.close();
}
if(ps!=null) {
ps.close();
}
if(con!=null&&!con.isClosed()) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
close(rs);
close(stmt);
close(conn);
}
public static boolean isOracle() {
return "oracle.jdbc.driver.OracleDriver".equals(driver);
}
public static boolean isSQLServer() {
return "com.microsoft.sqlserver.jdbc.SQLServerDriver".equals(driver);
}
public static boolean isMysql() {
return "com.mysql.jdbc.Driver".equals(driver);
}
public static void main(String[] args) {
Connection conn = DBHelper.getConnection();
DBHelper.close(conn);
System.out.println("isOracle:" + isOracle());
System.out.println("isSQLServer:" + isSQLServer());
System.out.println("isMysql:" + isMysql());
System.out.println("数据库连接(关闭)成功");
}
}
2.实体类:

clss:
package com.zq.entity;
import java.io.Serializable;
/**
* 班级类
* @author Administrator
*
*/
public class Class implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5145856861606131091L;
private int cid;
private String cname;
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Class() {
// TODO Auto-generated constructor stub
}
public Class(int cid, String cname) {
super();
this.cid = cid;
this.cname = cname;
}
@Override
public String toString() {
return "Class [cid=" + cid + ", cname=" + cname + "]";
}
}
hobby类:
package com.zq.entity;
import java.io.Serializable;
/**
* 爱好类
* @author Administrator
*
*/
public class Hobby implements Serializable{
/**
*
*/
private static final long serialVersionUID = -9120395110708701114L;
private String hid;
private String hname;
public String getHid() {
return hid;
}
public void setHid(String hid) {
this.hid = hid;
}
public String getHname() {
return hname;
}
public void setHname(String hname) {
this.hname = hname;
}
public Hobby() {
// TODO Auto-generated constructor stub
}
public Hobby(String hid, String hname) {
super();
this.hid = hid;
this.hname = hname;
}
@Override
public String toString() {
return "Hobby [hid=" + hid + ", hname=" + hname + "]";
}
}
Student类:
package com.zq.entity;
import java.io.Serializable;
import java.util.List;
public class Student implements Serializable{
private static final long serialVersionUID = 7154831938131519366L;
private int sid;
private String sname;
private Teacher t;
private Class c;
// private Hobby h;
private String ss;//用来增加 xiugai
private List<Hobby> ls;//用来绑值
//定义一个
public int getSid() {
return sid;
}
public String getSs() {
return ss;
}
public void setSs(String ss) {
this.ss = ss;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Teacher getT() {
return t;
}
public void setT(Teacher t) {
this.t = t;
}
public Class getC() {
return c;
}
public void setC(Class c) {
this.c = c;
}
public List<Hobby> getLs() {
return ls;
}
public void setLs(List<Hobby> ls) {
this.ls = ls;
}
public Student() {
// TODO Auto-generated constructor stub
}
public Student(int sid, String sname, Teacher t, Class c, List<Hobby> ls) {
super();
this.sid = sid;
this.sname = sname;
this.t = t;
this.c = c;
this.ls = ls;
}
public Student(String sname, Teacher t, Class c, String ss) {
this.sname = sname;
this.t = t;
this.c = c;
this.ss = ss;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", t=" + t + ", c=" + c + ", ls=" + ls + "]";
}
}
teacher类:
package com.zq.entity;
import java.io.Serializable;
/**
* 教师类
* @author Administrator
*
*/
public class Teacher implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4984197172186331612L;
private int tid;
private String tname;
private Class c;
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public Class getC() {
return c;
}
public void setC(Class c) {
this.c = c;
}
public Teacher() {
// TODO Auto-generated constructor stub
}
public Teacher(int tid, String tname, Class c) {
this.tid = tid;
this.tname = tname;
this.c = c;
}
@Override
public String toString() {
return "Teacher [tid=" + tid + ", tname=" + tname + ", c=" + c + "]";
}
}
3.dao类
calssDao:
package com.zq.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zq.entity.Class;
import com.zq.util.DBHelper;
public class ClssDao implements IClassDao{
private Connection con=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
@Override
public List<Class> getAll() {
List<Class> ls=new ArrayList<Class>();
try {
con=DBHelper.getConnection();
String sql="select * from tb_class";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
Class c=new Class();
c.setCid(rs.getInt(1));
c.setCname(rs.getString(2));
ls.add(c);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public Class getOne(int cid) {
Class c=new Class();
try {
con=DBHelper.getConnection();
String sql="select * from tb_class where cid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, cid);
rs=ps.executeQuery();
if(rs.next()) {
c.setCid(rs.getInt(1));
c.setCname(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return c;
}
}
IcalssDao:
package com.zq.dao;
import java.util.List;
import com.zq.entity.Class;
public interface IClassDao {
public List<com.zq.entity.Class> getAll();
public Class getOne(int cid);
}
hobbyDao:
package com.zq.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zq.entity.Hobby;
import com.zq.util.DBHelper;
public class HobbyDao implements IHobbyDao{
private Connection con=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
@Override
public List<Hobby> getAll() {
List<Hobby> ls=new ArrayList<Hobby>();
try {
con=DBHelper.getConnection();
String sql="select * from tb_hobby";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
Hobby h=new Hobby();
h.setHid(rs.getString(1));
h.setHname(rs.getString(2));
ls.add(h);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public Hobby getHobby(String hid) {
Hobby h=new Hobby();
try {
con=DBHelper.getConnection();
String sql="select * from tb_hobby where hid=?";
ps=con.prepareStatement(sql);
ps.setString(1, hid);
rs=ps.executeQuery();
if(rs.next()) {
h.setHid(rs.getString(1));
h.setHname(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return h;
}
}
IhobbyDao:
package com.zq.dao;
import java.util.List;
import com.zq.entity.Hobby;
public interface IHobbyDao {
public List<Hobby> getAll();
public Hobby getHobby(String hid);
}
StudentDao:
package com.zq.dao;
import java.sql.Array;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zq.entity.Class;
import com.zq.entity.Hobby;
import com.zq.entity.Student;
import com.zq.entity.Teacher;
import com.zq.util.DBHelper;
public class StudentDao implements IStudentDao{
//三兄弟
private Connection con=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
//调用爱好dao层
IHobbyDao ihd=new HobbyDao();
@Override
public List<Student> getAll() {
List<Student> ls=new ArrayList<Student>();
try {
con=DBHelper.getConnection();
String sql="select * from tb_student";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
//实例化一个爱好数组
List<Hobby> lss=new ArrayList<>();
Student stu=new Student();
stu.setSid(rs.getInt(1));
stu.setSname(rs.getString(2));
stu.setT(new BjJyAhDao().getTeacher(rs.getInt(3)));
stu.setC(new BjJyAhDao().getOne(rs.getInt(4)));
String sa = rs.getString(5);
//用逗号分割
String[] io = sa.split(",");
for (String kk : io) {
//调用查询单个方法
Hobby h = ihd.getHobby(kk);
lss.add(h);
}
stu.setLs(lss);
ls.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public int addStu(Student stu) {
int n=0;
try {
con=DBHelper.getConnection();
String sql="insert into tb_student(sname,tid,cid,hid) values(?,?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, stu.getSname());
ps.setInt(2, stu.getT().getTid());
ps.setInt(3, stu.getC().getCid());
ps.setString(4, stu.getSs());
n=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return n;
}
@Override
public int delStu(int sid) {
int n=0;
try {
con=DBHelper.getConnection();
String sql="delete from tb_student where sid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, sid);
n=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return n;
}
@Override
public int updStu(int sid, Student stu) {
int n=0;
try {
con=DBHelper.getConnection();
String sql="update tb_student set sname=?,tid=?,cid=?,hid=? where sid=?";
ps=con.prepareStatement(sql);
ps.setString(1, stu.getSname());
ps.setInt(2, stu.getT().getTid());
ps.setInt(3, stu.getC().getCid());
// ps.setString(4, stu.getH().getHid());
ps.setString(4, stu.getSs());
ps.setInt(5, sid);
n=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return n;
}
@Override
public Student getStu(int sid) {
Student stu=new Student();
try {
con=DBHelper.getConnection();
String sql="select * from tb_student where sid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, sid);
rs=ps.executeQuery();
if(rs.next()) {
//实例化一个爱好数组
List<Hobby> lss=new ArrayList<>();
stu.setSid(rs.getInt(1));
stu.setSname(rs.getString(2));
stu.setT(new BjJyAhDao().getTeacher(rs.getInt(3)));
stu.setC(new BjJyAhDao().getOne(rs.getInt(4)));
String sa = rs.getString(5);
//用逗号分割
String[] io = sa.split(",");
for (String kk : io) {
//调用查询单个方法
Hobby h = ihd.getHobby(kk);
lss.add(h);
}
stu.setLs(lss);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return stu;
}
@Override
public List<Student> getMH(String ctr, String htr, String str, int pageInde, int pageSize) {
List<Student> ls=new ArrayList<Student>();
int a=(pageInde-1)*pageSize;
try {
con=DBHelper.getConnection();
String sql="select * from tb_student where hid like '%"+htr+"%' and tid like '%"+str+"%' and cid like '%"+ctr+"%' limit ?,?";
ps=con.prepareStatement(sql);
ps.setInt(1, a);
ps.setInt(2, pageSize);
rs=ps.executeQuery();
while(rs.next()) {
//实例化一个爱好数组
List<Hobby> lss=new ArrayList<>();
Student stu=new Student();
stu.setSid(rs.getInt(1));
stu.setSname(rs.getString(2));
stu.setT(new BjJyAhDao().getTeacher(rs.getInt(3)));
stu.setC(new BjJyAhDao().getOne(rs.getInt(4)));
String sa = rs.getString(5);
//用逗号分割
String[] io = sa.split(",");
for (String kk : io) {
//调用查询单个方法
Hobby h = ihd.getHobby(kk);
lss.add(h);
}
stu.setLs(lss);
ls.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public int getRows(String str) {
int n=0;
try {
con=DBHelper.getConnection();
String sql="select count(*) from "+str;
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()) {
n=rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return n;
}
}
IStudentDao:
package com.zq.dao;
import java.util.List;
import com.zq.entity.Student;
public interface IStudentDao {
public List<Student> getAll();
public int addStu(Student stu);
public int delStu(int sid);
public int updStu(int sid,Student stu);
public Student getStu(int sid);
public List<Student> getMH(String ctr,String htr,String str,int pageInde,int pageSize);
public int getRows(String str);
}
TeacherDao:
package com.zq.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zq.entity.Teacher;
import com.zq.util.DBHelper;
public class TeacherDao implements ITeacherDao{
//三兄弟
private Connection con=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
@Override
public List<Teacher> getAll() {
List<Teacher> ls=new ArrayList<Teacher>();
try {
con=DBHelper.getConnection();
String sql="select * from tb_teacher";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
Teacher t=new Teacher();
t.setTid(rs.getInt(1));
t.setTname(rs.getString(2));
ls.add(t);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public Teacher getTeacher(int tid) {
Teacher t=new Teacher();
BjJyAhDao bjJyAhDao = new BjJyAhDao();
try {
con=DBHelper.getConnection();
String sql="select * from tb_teacher where tid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, tid);
rs=ps.executeQuery();
if(rs.next()) {
t.setTid(rs.getInt(1));
t.setTname(rs.getString(2));
t.setC(bjJyAhDao.getOne(rs.getInt(3)));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(con, ps, rs);
}
return t;
}
}
ITeacherDao:
package com.zq.dao;
import java.util.List;
import com.zq.entity.Teacher;
public interface ITeacherDao {
public List<Teacher> getAll();
public Teacher getTeacher(int tid);
}
4.biz层:
这里就是举例一个啦:
StudentBiz:
package com.zq.biz;
import java.util.List;
import com.zq.dao.IStudentDao;
import com.zq.dao.StudentDao;
import com.zq.entity.Student;
public class StudentBiz implements IStudentBiz{
IStudentDao isd=new StudentDao();
@Override
public List<Student> getAll() {
return isd.getAll();
}
@Override
public int addStu(Student stu) {
return isd.addStu(stu);
}
@Override
public int delStu(int sid) {
return isd.delStu(sid);
}
@Override
public int updStu(int sid, Student stu) {
return isd.updStu(sid, stu);
}
@Override
public Student getStu(int sid) {
return isd.getStu(sid);
}
@Override
public List<Student> getMH(String ctr, String htr, String str, int pageInde, int pageSize) {
return isd.getMH(ctr, htr, str, pageInde, pageSize);
}
@Override
public int getRows(String str) {
return isd.getRows(str);
}
}
IStudentBiz:
package com.zq.biz;
import java.util.List;
import com.zq.entity.Student;
public interface IStudentBiz {
public List<Student> getAll();
public int addStu(Student stu);
public int delStu(int sid);
public int updStu(int sid,Student stu);
public Student getStu(int sid);
public List<Student> getMH(String ctr, String htr, String str, int pageInde, int pageSize);
public int getRows(String str);
}
5.servlet类 :
1.AddServlet
package com.zq.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
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.zq.biz.ClassBiz;
import com.zq.biz.HobbyBiz;
import com.zq.biz.IClassBiz;
import com.zq.biz.IHobbyBiz;
import com.zq.biz.IStudentBiz;
import com.zq.biz.ITeacherBiz;
import com.zq.biz.StudentBiz;
import com.zq.biz.TeacherBiz;
import com.zq.entity.Class;
import com.zq.entity.Hobby;
import com.zq.entity.Student;
import com.zq.entity.Teacher;
@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
//拿out
PrintWriter out = response.getWriter();
//接收表单传值
String sname = request.getParameter("sname");
String tid = request.getParameter("teacher");
String cid = request.getParameter("class");
String[] hobby = request.getParameterValues("aa");
String ss="";
for (String string : hobby) {
ss+=string;
}
//调用业务逻辑层
IStudentBiz isb=new StudentBiz();
ITeacherBiz itb=new TeacherBiz();
Teacher t = itb.getTeacher(Integer.parseInt(tid));
IClassBiz icb=new ClassBiz();
Class c = icb.getOne(Integer.parseInt(cid));
Student stu=new Student(sname, t, c, ss);
int n = isb.addStu(stu);
if(n>0) {//加入成功
out.print("<script>alert('增加成功');location.href='index.jsp';</script>");
}
else {//加入失败
out.print("<script>alert('增加失败');location.href='add.jsp';</script>");
}
}
}
2.DeleteServlet
package com.zq.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.zq.biz.IStudentBiz;
import com.zq.biz.StudentBiz;
@WebServlet("/DeleteServlet")
public class DeleteServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
//接收表单传值
String sid = request.getParameter("sid");
//调用业务逻辑层
IStudentBiz isb=new StudentBiz();
int n = isb.delStu(Integer.parseInt(sid));
if(n>0) {
out.print("<script>alert('删除成功');location.href='index.jsp';</script>");
}
else {
out.print("<script>alert('删除失败');location.href='index.jsp';</script>");
}
}
}
3.IndexServlet
package com.zq.servlet;
import java.io.IOException;
import java.util.ArrayList;
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.zq.biz.ClassBiz;
import com.zq.biz.HobbyBiz;
import com.zq.biz.IClassBiz;
import com.zq.biz.IHobbyBiz;
import com.zq.biz.IStudentBiz;
import com.zq.biz.ITeacherBiz;
import com.zq.biz.StudentBiz;
import com.zq.biz.TeacherBiz;
import com.zq.entity.Class;
import com.zq.entity.Hobby;
import com.zq.entity.Student;
import com.zq.entity.Teacher;
@WebServlet("/IndexServlet")
public class IndexServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
//定义页码页数
int pageInde=1;
int pageSize=4;
//接收表单传值
String ctr = request.getParameter("ctr");//班级
String htr = request.getParameter("htr");//爱好
String str = request.getParameter("str");//教员
if(str==null) {
str="";
}
if(htr==null) {
htr="";
}
if(ctr==null) {
ctr="";
}
//查询所有的班级
IClassBiz icb=new ClassBiz();
List<Class> lc = icb.getAll();
//查询所有的教员
ITeacherBiz itb=new TeacherBiz();
List<Teacher> lt = itb.getAll();
//查询所有的学生
IStudentBiz isb=new StudentBiz();
// List<Student> ls = isb.getAll();
String pid=request.getParameter("pid");
if(pid!=null) {
pageInde=Integer.parseInt(pid);
}
int rows=isb.getRows("tb_student");
int max=rows/pageSize;
if(rows%pageSize!=0) {
max++;
}
if(max==0) {
max=1;
}
//带模糊查询的分页
List<Student> ls = isb.getMH(ctr, htr, str, pageInde, pageSize);
//查询所有的爱好
IHobbyBiz ihb=new HobbyBiz();
List<Hobby> lh = ihb.getAll();
if(ls.size()!=0&<.size()!=0&&lc.size()!=0&&lh.size()!=0) {
request.setAttribute("pageIndex", pageInde);
request.setAttribute("ls", ls);
request.setAttribute("la", lt);
request.setAttribute("lc", lc);
request.setAttribute("lh", lh);
request.setAttribute("max", max);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
else {
System.out.println("集合为空");
}
}
}
4. PreAddServlet
package com.zq.servlet;
import java.io.IOException;
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.zq.biz.ClassBiz;
import com.zq.biz.HobbyBiz;
import com.zq.biz.IClassBiz;
import com.zq.biz.IHobbyBiz;
import com.zq.biz.ITeacherBiz;
import com.zq.biz.TeacherBiz;
import com.zq.entity.Class;
import com.zq.entity.Hobby;
import com.zq.entity.Teacher;
@WebServlet("/PreAddServlet")
public class PreAddServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
//调用业务逻辑层
IHobbyBiz ihb=new HobbyBiz();
IClassBiz icb=new ClassBiz();
ITeacherBiz itb=new TeacherBiz();
List<Hobby> lh = ihb.getAll();
List<Class> lc = icb.getAll();
List<Teacher> lt = itb.getAll();
if(lh.size()!=0&&lc.size()!=0&<.size()!=0) {
request.setAttribute("lh", lh);
request.setAttribute("lc", lc);
request.setAttribute("la", lt);
request.getRequestDispatcher("add.jsp").forward(request, response);
}
else {
System.out.println("集合为空");
}
}
}
5.PreUpdateServlet
package com.zq.servlet;
import java.io.IOException;
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.zq.biz.ClassBiz;
import com.zq.biz.HobbyBiz;
import com.zq.biz.IClassBiz;
import com.zq.biz.IHobbyBiz;
import com.zq.biz.IStudentBiz;
import com.zq.biz.ITeacherBiz;
import com.zq.biz.StudentBiz;
import com.zq.biz.TeacherBiz;
import com.zq.entity.Class;
import com.zq.entity.Hobby;
import com.zq.entity.Student;
import com.zq.entity.Teacher;
@WebServlet("/PreUpdateServlet")
public class PreUpdateServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
//接收
String sid = request.getParameter("sid");
//调用业务逻辑层
IStudentBiz isb=new StudentBiz();
Student stu = isb.getStu(Integer.parseInt(sid));
IHobbyBiz ihb=new HobbyBiz();
IClassBiz icb=new ClassBiz();
ITeacherBiz itb=new TeacherBiz();
List<Hobby> lh = ihb.getAll();
List<Class> lc = icb.getAll();
List<Teacher> lt = itb.getAll();
request.setAttribute("lh", lh);
request.setAttribute("lc", lc);
request.setAttribute("la", lt);
request.setAttribute("stu", stu);
request.getRequestDispatcher("update.jsp").forward(request, response);
}
}
6. PreUpdateServlet1
package com.zq.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
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.zq.biz.ClassBiz;
import com.zq.biz.HobbyBiz;
import com.zq.biz.IClassBiz;
import com.zq.biz.IHobbyBiz;
import com.zq.biz.IStudentBiz;
import com.zq.biz.ITeacherBiz;
import com.zq.biz.StudentBiz;
import com.zq.biz.TeacherBiz;
import com.zq.entity.Class;
import com.zq.entity.Hobby;
import com.zq.entity.Student;
import com.zq.entity.Teacher;
@WebServlet("/PreUpdateServlet1")
public class PreUpdateServlet1 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
//接收表单传值
String sid = request.getParameter("sid");
String sname = request.getParameter("sname");
String tid = request.getParameter("teacher");
String cid = request.getParameter("class");
String[] hobby = request.getParameterValues("aa");
String ss="";
for (String string : hobby) {
ss+=string;
}
//调用业务逻辑层
IStudentBiz isb=new StudentBiz();
ITeacherBiz itb=new TeacherBiz();
Teacher t = itb.getTeacher(Integer.parseInt(tid));
IClassBiz icb=new ClassBiz();
Class c = icb.getOne(Integer.parseInt(cid));
Student stu=new Student(sname, t, c, ss);
int n = isb.updStu(Integer.parseInt(sid),stu);
if(n>0) {//加入成功
out.print("<script>alert('修改成功');location.href='index.jsp';</script>");
}
else {//加入失败
out.print("<script>alert('修改成功');location.href='PreUpdateServlet?sid="+sid+"';</script>");
}
}
}
三、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 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>
</head>
<body>
<center>
<form method="post" action="IndexServlet">
<c:if test="${empty la}">
<jsp:forward page="IndexServlet"></jsp:forward>
</c:if>
<c:if test="${not empty la}">
<select name="str">
<c:forEach var="t" items="${la}">
<option value="${t.tid}">${t.tname}</option>
</c:forEach>
</select>
</c:if>
<c:if test="${empty lc}">
<jsp:forward page="IndexServlet"></jsp:forward>
</c:if>
<c:if test="${not empty lc}">
<select name="ctr">
<c:forEach var="c" items="${lc}">
<option value="${c.cid}">${c.cname}</option>
</c:forEach>
</select>
</c:if>
<c:if test="${empty lh}">
<jsp:forward page="IndexServlet"></jsp:forward>
</c:if>
<c:if test="${not empty lh}">
<c:forEach items="${lh}" var="h">
<input type="checkbox" name="htr" value="${h.hid},"/>${h.hname}
</c:forEach>
</c:if>
<input type="submit" value="查询"/>
</form>
<c:if test="${empty ls}">
<jsp:forward page="IndexServlet"></jsp:forward>
</c:if>
<c:if test="${not empty ls}">
<table border="1px">
<tr>
<td>学生编号</td>
<td>学生姓名</td>
<td>学生的教员</td>
<td>学生所在班级</td>
<td>学生爱好</td>
<td>操作 <a href="add.jsp">增加</a></td>
</tr>
<c:forEach items="${ls}" var="s">
<tr>
<td>${s.sid}</td>
<td>${s.sname}</td>
<td>${s.t.tname}</td>
<td>${s.c.cname}</td>
<td>
<c:forEach items="${s.ls}" var="sd">
${sd.hname}
</c:forEach>
</td>
<td>
<a onclick="return confirm('你确定要删除吗?');" href="DeleteServlet?sid=${s.sid}">删除</a>
<a href="PreUpdateServlet?sid=${s.sid}">修改</a>
</td>
</tr>
</c:forEach>
<tr>
<td colspan="6">
<a href="IndexServlet?pid=1">首页</a>
<a href="IndexServlet?pid=${pageIndex>1?pageIndex-1:1}">上一页</a>
[${pageIndex}/${max}]
<a href="IndexServlet?pid=${pageIndex<max?pageIndex+1:max}">下一页</a>
<a href="IndexServlet?pid=${max}">尾页</a>
</td>
</tr>
</table>
</c:if>
</center>
</body>
</html>②增加界面:
<%@ 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>
<script type="text/javascript">
function myf(){
location.href="index.jsp";
}
</script>
</head>
<body>
<center>
<form action="AddServlet" method="post">
<table border="1px">
<tr>
<td>学生姓名</td>
<td><input type="text" name="sname"/></td>
</tr>
<tr>
<td>教员</td>
<td>
<c:if test="${empty la}">
<jsp:forward page="PreAddServlet"></jsp:forward>
</c:if>
<c:if test="${not empty la}">
<select name="teacher">
<c:forEach var="t" items="${la}">
<option value="${t.tid}">${t.tname}</option>
</c:forEach>
</select>
</c:if>
</td>
</tr>
<tr>
<td>班级</td>
<td>
<c:if test="${empty lc}">
<jsp:forward page="PreAddServlet"></jsp:forward>
</c:if>
<c:if test="${not empty lc}">
<select name="class">
<c:forEach var="c" items="${lc}">
<option value="${c.cid}">${c.cname}</option>
</c:forEach>
</select>
</c:if>
</td>
</tr>
<tr>
<td>爱好</td>
<td>
<c:if test="${empty lh}">
<jsp:forward page="PreAddServlet"></jsp:forward>
</c:if>
<c:if test="${not empty lh}">
<c:forEach items="${lh}" var="h">
<input type="checkbox" name="aa" value="${h.hid},"/>${h.hname}
</c:forEach>
</c:if>
</td>
</tr>
</table>
<input type="submit" value="增加"/>
<input type="button" value="清空" onclick="myf()"/>
</form>
</center>
</body>
</html>③修改界面:
<%@ 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>
</head>
<body>
<center>
<form action="PreUpdateServlet1?sid=${stu.sid}" method="post">
<table border="1px">
<tr>
<td>学生姓名</td>
<td><input type="text" name="sname" value="${stu.sname}"/></td>
</tr>
<tr>
<td>教员</td>
<td>
<select name="teacher">
<c:forEach var="t" items="${la}">
<option <c:if test="${t.tid==stu.t.tid}"> selected="selected" </c:if> value="${t.tid}">${t.tname}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>班级</td>
<td>
<select name="class">
<c:forEach var="c" items="${lc}">
<option <c:if test="${c.cid==stu.c.cid}"> selected="selected" </c:if> value="${c.cid}">${c.cname}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>爱好</td>
<td>
<c:forEach items="${lh}" var="h">
<input <c:forEach items="${stu.ls}" var="oo"> <c:if test="${h.hname==oo.hname}"> checked="checked" </c:if> </c:forEach> type="checkbox" name="aa" value="${h.hid},"/>${h.hname}
</c:forEach>
</td>
</tr>
</table>
<input type="submit" value="修改"/>
</form>
</center>
</body>
</html>边栏推荐
- How to implement observer mode
- Reading notes on how to connect the network - Web server request and response (V)
- 长安链GO语言智能合约编写与编译
- 股票炒股账号开户安全吗?是靠谱的吗?
- 你知道BFD是什么吗?一文详解BFD协议原理及使用场景
- easyexecl导出100万行execl报字体错误的解决办法
- Construction and use of Changan chain go language smart contract environment
- Mysql database and table splitting strategy and application scenarios
- Self cultivation (XXI) servlet life cycle, service method source code analysis, thread safety issues
- HB5470民用飞机机舱内部非金属材料燃烧测试
猜你喜欢

# 《网络是怎么样连接的》读书笔记 - WEB服务端请求和响应(四)

In the future of Business Intelligence BI, how do you view the ai+bi model?

Making of simple addition calculator based on pyqt5 and QT Designer

Mysql配置主从数据库

Pytorch summary learning series - operation

Gd32f4xx Ethernet chip (ENC28J60) driver migration

基于keil5自动配置stm32f103标准库的官网freertos移植

UE4 VS的Visual Assist插件设置

Difference between factory mode and strategy mode

你知道BFD是什么吗?一文详解BFD协议原理及使用场景
随机推荐
Mysql配置主从数据库
UE4 在viewport视口中显示3D可编辑点
基於PyQt5和Qt Designer的簡易加法計算器的制作
Pytoch Summary - transform between sensor and numpy
[noi Simulation Competition] add points for noi (heavy chain dissection, line segment tree)
Wechat applet search keyword highlighting and ctrl+f search positioning
【NOI模拟赛】为NOI加点料(重链剖分,线段树)
你必须知道的23个最有用的Elasticseaerch检索技巧
Easyexcl export 1million lines of EXECL report font error solution
UE4 插件报错 Cannot open include file: ‘ModuleManager.h‘解决
Wechat applet user refuses to authorize geographic location information and calls up the authorization window again
Written test question "arrange version numbers from large to small"
Understanding of singleton mode
UE4 remove the mask transparent white edge in the material
《网络是怎么样连接的》读书笔记 - WEB服务端请求和响应(五)
Making of simple addition calculator based on pyqt5 and QT Designer
The principle of session and cookie
Lc236. nearest common ancestor of binary tree
长安链GO语言智能合约编写与编译
367. 有效的完全平方数-二分法