J2EE|学生管理系统的增删改查

【J2EE|学生管理系统的增删改查】目录
一、数据库的设计
二、底层代码1(实体类以及dao方法)
三、底层代码二(servlet)
四、界面代码

使用工具:MySQL和eclipse
目标需求:
1.利用MySQL建4张表 分别为 学生表 教员表 班级表 爱好表
2.要求带条件的模糊查询(两个下拉框以及一个复选框)和分页
3.新增功能
4.修改界面,值回显的问题(显示已选中的爱好)
5.删除功能
爱好表(1代表篮球 2代表足球 3代表唱歌 4代表跳舞)
一、数据库的设计 J2EE|学生管理系统的增删改查
文章图片

tb_class
J2EE|学生管理系统的增删改查
文章图片


tb_habby
J2EE|学生管理系统的增删改查
文章图片


tb_stu
J2EE|学生管理系统的增删改查
文章图片


tb_teacher
J2EE|学生管理系统的增删改查
文章图片

二、底层代码1(实体类以及dao方法) com.cdl.utils包下

#oracle9i #driver=oracle.jdbc.driver.OracleDriver #url=jdbc:oracle:thin:@localhost:1521:orcl #user=scott #pwd=123#sql2005 #driver=com.microsoft.sqlserver.jdbc.SQLServerDriver #url=jdbc:sqlserver://localhost:1433; DatabaseName=test1 #user=sa #pwd=123#sql2000 #driver=com.microsoft.jdbc.sqlserver.SQLServerDriver #url=jdbc:microsoft:sqlserver://localhost:1433; databaseName=unit6DB #user=sa #pwd=888888#mysql driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/0614?useUnicode=true&characterEncoding=UTF-8&useSSL=false user=root pwd=123456

package com.cdl.utils; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; 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 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("数据库连接(关闭)成功"); } }

com.cdl.entity
package com.cdl.entity; import java.io.Serializable; /** * 实体类:班级类 * @author 陈冬丽 * */ public class Class implements Serializable{ //防止序列化与反序列化 private static final long serialVersionUID = 1L; privateint 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) { this.cid = cid; this.cname = cname; } public Class(String cname) { this.cname = cname; } @Override public String toString() { return "Class [cid=" + cid + ", cname=" + cname + "]"; } }

package com.cdl.entity; import java.io.Serializable; /** * 实体类:爱好类 * @author 陈冬丽 * */ public class Habby implements Serializable{ //防止序列化与反序列化 private static final long serialVersionUID = 1L; 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 Habby() { // TODO Auto-generated constructor stub } public Habby(String hid, String hname) { this.hid = hid; this.hname = hname; } public Habby( String hname) { this.hname = hname; } @Override public String toString() { return "Habby [hid=" + hid + ", hname=" + hname + "]"; } }

package com.cdl.entity; import java.io.Serializable; import java.util.List; /** * 实体类:学生类 * @author 陈冬丽 * */ public class Student implements Serializable{ //防止序列化与反序列化 private static final long serialVersionUID = 1L; private int sid; //学生编号 private String sname; //学生姓名 private Class c; //班级 private Habby h; //爱好 private Teacher tea; //老师 private String ss; private List ls; public String getSs() { return ss; } public void setSs(String ss) { this.ss = ss; } public List getLs() { return ls; } public void setLs(List ls) { this.ls = ls; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public Class getC() { return c; } public void setC(Class c) { this.c = c; } public Habby getH() { return h; } public void setH(Habby h) { this.h = h; } public Teacher getTea() { return tea; } public void setTea(Teacher tea) { this.tea = tea; } public Student() { // TODO Auto-generated constructor stub } public Student(int sid, String sname, Class c, Habby h, Teacher tea, String ss, List ls) { this.sid = sid; this.sname = sname; this.c = c; this.h = h; this.tea = tea; this.ss = ss; this.ls = ls; } public Student(int sid, String sname, Class c,Teacher tea, String ss) { this.sid = sid; this.sname = sname; this.c = c; this.tea = tea; this.ss = ss; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", c=" + c + ", h=" + h + ", tea=" + tea + ", ss=" + ss + ", ls=" + ls + "]"; } }

package com.cdl.entity; import java.io.Serializable; /** * 实体类:教员类 * @author 陈冬丽 * */ public class Teacher implements Serializable{ //防止序列化与反序列化 private static final long serialVersionUID = 1L; 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; } public Teacher( String tname, Class c) { this.tname = tname; this.c = c; } @Override public String toString() { return "Teacher [tid=" + tid + ", tname=" + tname + ", c=" + c + "]"; } }

com.cdl.dao
package com.cdl.dao; import java.util.List; import com.cdl.entity.Student; /** * 数据库访问层设计类 * @author 陈冬丽 * */ public interface IStuDao { /** * 查询单个 * @param sid 学生编号 * @return 学生对象 */ public Student getStu(int sid) ; /** * 查询所有 * @return 查询的结果集合 */ public List getAll(); /** * 模糊查询 * @param colName 要查询的列名 * @param str 关键字 * @return 对象 */ public List getMH(String ctr,String htr, String str,int pageIndex,int pageSize); /** * 增加学生 * @param stu 学生对象 * @return 影响行数 */ public int addStu(Student stu); /** * 删除学生 * @param sid 学生编号 * @return 影响行数 */ public int delStu(int sid); /** * 修改学生 * @param stu 要修改的对象 * @param sid 学生编号 * @return 影响行数 */ public int upStu(Student stu,int sid); /** * 总行数 * @return 行数 */ public int getRows(String str); }

package com.cdl.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.cdl.entity.Class; import com.cdl.entity.Habby; import com.cdl.entity.Student; import com.cdl.utils.DBHelper; /** * 数据库访问层 * @author 陈冬丽 * */ public class StuDao implements IStuDao{ //三兄弟 Connection con = null; PreparedStatement ps =null; ResultSet rs = null; public Student getStu(int sid) { Student stu = new Student(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_stu where sid=?"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setInt(1, sid); //给rs赋值 rs=ps.executeQuery(); //判断 if(rs.next()) { stu.setSid(rs.getInt(1)); stu.setSname(rs.getString(2)); stu.setC(new ClassDao().getClz(rs.getInt(3))); //stu.setH(new HobbyDao().getHob(rs.getInt(4))); stu.setSs(rs.getString(4)); stu.setTea(new TeaDao().getTea(rs.getInt(5))); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return stu; } @Override public List getAll() { List ls = new ArrayList(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_stu"; //获得执行对象 ps=con.prepareStatement(sql); //给集合赋值 rs=ps.executeQuery(); //遍历 while(rs.next()) { List list = new ArrayList<>(); //实例化一个对象 Student stu = new Student(); stu.setSid(rs.getInt(1)); stu.setSname(rs.getString(2)); stu.setC(new ClassDao().getClz(rs.getInt(3))); //stu.setH(new HobbyDao().getHob(rs.getInt(4))); //分割 String hob = rs.getString(4); //System.out.println(rs.getString(4)); //用逗号分割 String [] ss = hob.split(","); for (String so : ss) { IHobbyDao ihd = new HobbyDao(); Habby h = ihd.getHob(Integer.parseInt(so)); list.add(h); } stu.setLs(list); stu.setTea(new TeaDao().getTea(rs.getInt(5))); //加进去 ls.add(stu); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { DBHelper.close(con, ps, rs); } return ls; } @Override public List getMH(String ctr, String htr,String str,int pageIndex,int pageSize) { List ls = new ArrayList<>(); int a = (pageIndex-1)*pageSize; int b = pageSize; try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_stu where hid like '%"+htr+"%' and tid like '%"+str+"%' and cid like '%"+ctr+"%' limit ?,?"; //获得执行对象 ps=con.prepareStatement(sql); ps.setInt(1, a); ps.setInt(2, b); //给集合赋值 rs=ps.executeQuery(); //遍历 if(rs.next()) { List list = new ArrayList<>(); //实例化一个对象 Student stu = new Student(); stu.setSid(rs.getInt(1)); stu.setSname(rs.getString(2)); stu.setC(new ClassDao().getClz(rs.getInt(3))); //stu.setH(new HobbyDao().getHob(rs.getInt(4))); //分割 String hob = rs.getString(4); //System.out.println(rs.getString(4)); //用逗号分割 String [] ss = hob.split(","); for (String so : ss) { IHobbyDao ihd = new HobbyDao(); //调用单个查询方法 Habby h = ihd.getHob(Integer.parseInt(so)); list.add(h); } stu.setLs(list); stu.setTea(new TeaDao().getTea(rs.getInt(5))); //加进去 ls.add(stu); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { DBHelper.close(con, ps, rs); } return ls; } @Override public int addStu(Student stu) { int n = 0; try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "insert into tb_stu(sid,sname,cid,hid,tid) values(?,?,?,?,?)"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setInt(1, stu.getSid()); ps.setString(2, stu.getSname()); ps.setInt(3,stu.getC().getCid()); ps.setString(4, stu.getSs()); ps.setInt(5,stu.getTea().getTid()); //给n赋值 n=ps.executeUpdate(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return n; } @Override public int delStu(int sid) { int n = 0; try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "delete from tb_stu where sid=?"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setInt(1, sid); //给n赋值 n=ps.executeUpdate(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return n; } @Override public int upStu(Student stu, int sid) { intn = 0; try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "update tb_stu set sname=?,cid=?,hid=?,tid=? where sid=?"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setString(1, stu.getSname()); ps.setInt(2, stu.getC().getCid()); ps.setString(3, stu.getSs()); ps.setInt(4, stu.getTea().getTid()); ps.setInt(5, sid); //给n赋值 n=ps.executeUpdate(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return n; } @Override public int getRows(String str) { int n = 0; try { con = DBHelper.getConnection(); String sql = "select count(*) from ?"; ps=con.prepareStatement(sql); ps.setString(1, str); rs=ps.executeQuery(); if(rs.next()) { n=rs.getInt(1); } } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.close(con, ps, null); } return n; } public static void main(String[] args) { StuDao stu = new StuDao(); //System.out.println(123); /*List sd = stu.getAll(); for (Student student : sd) { System.out.println(student); }*/ /*Student stu2 = stu.getStu(3); System.out.println(stu2); */ /*List mh = stu.getMH("sname", "三", 2, 2); for (Student student : mh) { System.out.println(student+"====================="); }*/ List mh = stu.getMH("278", "1", "2202", 1, 2); for (Student student : mh) { System.out.println(student+"================="); } } }

package com.cdl.dao; /** * 数据访问层接口类 * @author 陈冬丽 * */import java.util.List; import com.cdl.entity.Teacher; public interface ITeacDao { /** * 查询单个教员 * @param tid 教员编号 * @return 教员对象 */ public Teacher getTea(int tid); /** * 查询所有教员 * @return */ public List getAll(); }

package com.cdl.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.cdl.entity.Teacher; import com.cdl.utils.DBHelper; /** * 业务逻辑层 * @author 陈冬丽 * */ public class TeaDao implements ITeacDao{ //三兄弟 Connection con = null; PreparedStatement ps =null; ResultSet rs = null; @Override public Teacher getTea(int tid) { Teacher tea = new Teacher(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_teacher where tid=?"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setInt(1, tid); //给rs赋值 rs=ps.executeQuery(); //判断 if(rs.next()) { tea.setTid(rs.getInt(1)); tea.setTname(rs.getString(2)); tea.setC(new ClassDao().getClz(3)); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { DBHelper.close(con, ps, rs); } return tea; } @Override public List getAll() { List list = new ArrayList(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_teacher"; //获得执行对象 ps=con.prepareStatement(sql); //给rs赋值 rs=ps.executeQuery(); //判断 while(rs.next()) { Teacher tea = new Teacher(); tea.setTid(rs.getInt(1)); tea.setTname(rs.getString(2)); tea.setC(new ClassDao().getClz(rs.getInt(3))); //加进去 list.add(tea); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { DBHelper.close(con, ps, rs); } return list; } /*public static void main(String[] args) { TeaDao td = new TeaDao(); Teacher tea = td.getTea(2201); System.out.println(tea); }*/ }

package com.cdl.dao; /** * 数据库访问层接口类 * @author 陈冬丽 * */import java.util.List; import com.cdl.entity.Habby; public interface IHobbyDao { /** * 查询单个 * @param hid 爱好编号 * @return 爱好的对象 */ public Habby getHob(int hid); /** * 查询所有 * @return 爱好的集合 */ public List getAll(); }

package com.cdl.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.cdl.entity.Habby; import com.cdl.utils.DBHelper; /** * 数据库访问层 * @author 陈冬丽 * */ public class HobbyDao implements IHobbyDao{ //三兄弟 Connection con = null; PreparedStatement ps =null; ResultSet rs = null; @Override public Habby getHob(int hid) { Habby h = new Habby(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_habby where hid=?"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setInt(1, hid); //给rs赋值 rs=ps.executeQuery(); //判断 if(rs.next()) { h.setHid(rs.getString(1)); h.setHname(rs.getString(2)); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { DBHelper.close(con, ps, rs); } return h; } @Override public List getAll() { List list = new ArrayList(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_habby"; //获得执行对象 ps=con.prepareStatement(sql); //给rs赋值 rs=ps.executeQuery(); //遍历 while(rs.next()) { Habby h = new Habby(); h.setHid(rs.getString(1)); h.setHname(rs.getString(2)); //加进去 list.add(h); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return list; } }

package com.cdl.dao; /** * 数据库访问层 * @author 陈冬丽 * */import java.util.List; import com.cdl.entity.Class; public interface IClassDao { /** * 查询单个班级 * @return 班级对象 */ public ClassgetClz(int cid); /** * 查询所有 * @return 班级和集合 */ public List getAll(); }

package com.cdl.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.cdl.entity.Class; import com.cdl.utils.DBHelper; /** * 数据库访问层 * @author 陈冬丽 * */ public class ClassDao implements IClassDao{ //三兄弟 Connection con = null; PreparedStatement ps =null; ResultSet rs = null; @Override public Class getClz(int cid) { Class clz = new Class(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_class where cid=?"; //获得执行对象 ps=con.prepareStatement(sql); //给占位符赋值 ps.setInt(1, cid); //给rs赋值 rs=ps.executeQuery(); //判断 if(rs.next()) { clz.setCid(rs.getInt(1)); clz.setCname(rs.getString(2)); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return clz; } @Override public List getAll() { List list = new ArrayList(); try { //获得连接 con = DBHelper.getConnection(); //定义sql语句 String sql = "select * from tb_class"; //获得执行对象 ps=con.prepareStatement(sql); //给rs赋值 rs=ps.executeQuery(); //遍历 while(rs.next()) { Class c = new Class(); c.setCid(rs.getInt(1)); c.setCname(rs.getString(2)); //加进去 list.add(c); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return list; } /*public static void main(String[] args) { ClassDao cd = new ClassDao(); List c = cd.getAll(); System.out.println(c); }*/ }

com.cdl.biz
package com.cdl.biz; import java.util.List; import com.cdl.entity.Student; /** * 业务逻辑层设计类 * @author 陈冬丽 * */ public interface IStuBiz { /** * 查询单个 * @param sid 学生编号 * @return 学生对象 */ public Student getStu(int sid) ; /** * 查询所有 * @return 查询的结果集合 */ public List getAll(); /** * 模糊查询 * @param colName 要查询的列名 * @param str 关键字 * @return 对象 */ public List getMH(String ctr,String htr, String str,int pageIndex,int pageSize); /** * 增加学生 * @param stu 学生对象 * @return 影响行数 */ public int addStu(Student stu); /** * 删除学生 * @param sid 学生编号 * @return 影响行数 */ public int delStu(int sid); /** * 修改学生 * @param stu 要修改的对象 * @param sid 学生编号 * @return 影响行数 */ public int upStu(Student stu,int sid); /** * 总行数 * @return */ public int getRows(String str); }

package com.cdl.biz; /** * 业务逻辑层 * @author 陈冬丽 * */import java.util.List; import com.cdl.dao.IStuDao; import com.cdl.dao.StuDao; import com.cdl.entity.Student; public class StuBiz implements IStuBiz{ //调用数据库访问层 IStuDao isd = new StuDao(); @Override public List getAll() { // TODO Auto-generated method stub return isd.getAll(); } @Override public int addStu(Student stu) { // TODO Auto-generated method stub return isd.addStu(stu); } @Override public int delStu(int sid) { // TODO Auto-generated method stub return isd.delStu(sid); } @Override public int upStu(Student stu, int sid) { // TODO Auto-generated method stub return isd.upStu(stu, sid); } @Override public Student getStu(int sid) { // TODO Auto-generated method stub return isd.getStu(sid); } @Override public List getMH(String ctr, String htr, String str, int pageIndex, int pageSize) { // TODO Auto-generated method stub return isd.getMH(ctr, htr, str, pageIndex, pageSize); } @Override public int getRows(String str) { // TODO Auto-generated method stub return isd.getRows(str); } }

package com.cdl.biz; /** * 业务逻辑层接口类 * @author 陈冬丽 * */import java.util.List; import com.cdl.entity.Teacher; public interface ITeacBiz { /** * 查询单个教员 * @param tid 教员编号 * @return 教员对象 */ public Teacher getTea(int tid); /** * 查询所有教员 * @return */ public List getAll(); }

package com.cdl.biz; /** * 业务逻辑层 * @author 陈冬丽 * */import java.util.List; import com.cdl.dao.ITeacDao; import com.cdl.dao.TeaDao; import com.cdl.entity.Teacher; public class TeaBiz implements ITeacBiz{ //调用数据库访问层 ITeacDao itd = new TeaDao(); @Override public Teacher getTea(int tid) { // TODO Auto-generated method stub return itd.getTea(tid); } @Override public List getAll() { // TODO Auto-generated method stub return itd.getAll(); } }

package com.cdl.biz; /** * 业务逻辑层接口类 * @author 陈冬丽 * */import java.util.List; import com.cdl.entity.Habby; public interface IHobbyBiz { /** * 查询单个 * @param hid 爱好编号 * @return 爱好的对象 */ public Habby getHob(int hid); /** * 查询所有 * @return 爱好的集合 */ public List getAll(); }

package com.cdl.biz; /** * 业务逻辑层 * @author 陈冬丽 * */import java.util.List; import com.cdl.dao.HobbyDao; import com.cdl.dao.IHobbyDao; import com.cdl.entity.Habby; public class HobbyBiz implements IHobbyBiz{ //调用数据库访问层 IHobbyDao ihd = new HobbyDao(); @Override public Habby getHob(int hid) { // TODO Auto-generated method stub return ihd.getHob(hid); } @Override public List getAll() { // TODO Auto-generated method stub return ihd.getAll(); } }

package com.cdl.biz; import java.util.List; import com.cdl.entity.Class; /** * 业务逻辑层接口类 * @author 陈冬丽 * */ public interface IClassBiz { /** * 查询单个班级 * @return 班级对象 */ public ClassgetClz(int cid); /** * 查询所有 * @return 班级和集合 */ public List getAll(); }

package com.cdl.biz; /*** * 业务逻辑层 * @author 陈冬丽 * */import java.util.List; import com.cdl.dao.ClassDao; import com.cdl.dao.IClassDao; import com.cdl.entity.Class; public class ClassBiz implements IClassBiz{ //调用数据库访问层 IClassDao icd = new ClassDao(); @Override public Class getClz(int cid) { // TODO Auto-generated method stub return icd.getClz(cid); } @Override public List getAll() { // TODO Auto-generated method stub return icd.getAll(); } }

三、底层代码二(servlet) com.cdl.servlet
package com.cdl.servlet; import java.io.IOException; import java.io.PrintWriter; 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.cdl.biz.ClassBiz; import com.cdl.biz.HobbyBiz; import com.cdl.biz.IClassBiz; import com.cdl.biz.IHobbyBiz; import com.cdl.biz.IStuBiz; import com.cdl.biz.ITeacBiz; import com.cdl.biz.StuBiz; import com.cdl.biz.TeaBiz; import com.cdl.entity.Class; import com.cdl.entity.Habby; import com.cdl.entity.Student; import com.cdl.entity.Teacher; /** * 主界面绑值以及模糊查询 */ @WebServlet("/index.do") 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"); //获取out PrintWriter out = response.getWriter(); //调用biz层 IStuBiz stb = new StuBiz(); ITeacBiz itb = new TeaBiz(); IClassBiz icb = new ClassBiz(); IHobbyBiz ihb = new HobbyBiz(); //定义页码页数 int pageIndex=1; int pageSize=2; //接收表单值 String cid = request.getParameter("ctr"); //班级 String hid = request.getParameter("htr"); //爱好 String tid = request.getParameter("str"); //教员if(tid==null) { tid=""; } if(hid==null) { hid=""; } if(cid==null) { cid=""; }String pid = request.getParameter("pid"); if(pid!=null) { pageIndex=Integer.parseInt(pid); }//select * from tb_teacher where tid like '%"+hid+"%' int rows = stb.getRows("tb_stu where hid like '%"+hid+"%' and tid like '%"+tid+"%' and cid like '%"+cid+"%' "); int max = rows/pageSize; if(rows%pageSize!=0) { max++; } if(max==0) { max=1; }//调用方法 List mytea = itb.getAll(); List myclz = icb.getAll(); List myh = ihb.getAll(); List myls = stb.getMH(cid, hid, tid, pageIndex,pageSize); //Student stu = new Student(); //List ls = stu.getLs(); //String aa = ""; //for (Habby habby : ls) { //aa+=habby+","; //}/*int rows = */ request.setAttribute("mytea", mytea); request.setAttribute("myclz", myclz); request.setAttribute("myh", myh); request.setAttribute("max", max); request.setAttribute("pageIndex", pageIndex); request.setAttribute("myls", myls); //判断 request.getRequestDispatcher("index.jsp").forward(request, response); /*if(myls!=null) {} else { System.out.println("检查dao方法"); }*/ }}

package com.cdl.servlet; import java.io.IOException; import java.io.PrintWriter; 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.cdl.biz.ClassBiz; import com.cdl.biz.HobbyBiz; import com.cdl.biz.IClassBiz; import com.cdl.biz.IHobbyBiz; import com.cdl.biz.IStuBiz; import com.cdl.biz.ITeacBiz; import com.cdl.biz.StuBiz; import com.cdl.biz.TeaBiz; import com.cdl.entity.Class; import com.cdl.entity.Habby; import com.cdl.entity.Student; import com.cdl.entity.Teacher; /** * 增加前增加界面的绑值 */ @WebServlet("/add1.do") public class AddIndexServlet 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(); //调用biz层 IStuBiz stb = new StuBiz(); ITeacBiz itb = new TeaBiz(); IClassBiz icb = new ClassBiz(); IHobbyBiz ihb = new HobbyBiz(); //调用方法 List myls = stb.getAll(); List mytea = itb.getAll(); List myclz = icb.getAll(); List myh = ihb.getAll(); request.setAttribute("mytea", mytea); request.setAttribute("myclz", myclz); request.setAttribute("myh", myh); //判断 if(myls!=null) { request.setAttribute("myls", myls); request.getRequestDispatcher("add.jsp").forward(request, response); } else { System.out.println("检查dao方法"); } }}

package com.cdl.servlet; import java.io.IOException; import java.io.PrintWriter; 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.cdl.biz.ClassBiz; import com.cdl.biz.HobbyBiz; import com.cdl.biz.IClassBiz; import com.cdl.biz.IHobbyBiz; import com.cdl.biz.IStuBiz; import com.cdl.biz.ITeacBiz; import com.cdl.biz.StuBiz; import com.cdl.biz.TeaBiz; import com.cdl.entity.Class; import com.cdl.entity.Habby; import com.cdl.entity.Student; import com.cdl.entity.Teacher; /** * 执行增加 */ @WebServlet("/add.do") 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 sid = request.getParameter("sid"); String sname = request.getParameter("sname"); //System.out.println(sid+sname+"======================"); String tid = request.getParameter("tname"); String cid = request.getParameter("cname"); String [] id = request.getParameterValues("hname"); String hb = ""; for (String string : id) { hb+=string; } //System.out.println(hb+"=============="+id); //调用biz层 ITeacBiz itb = new TeaBiz(); Teacher tea = itb.getTea(Integer.valueOf(tid)); IClassBiz icb = new ClassBiz(); Class clz = icb.getClz(Integer.valueOf(cid)); IStuBiz stb = new StuBiz(); Student stu = new Student(Integer.parseInt(sid), sname, clz, tea,hb); int n = stb.addStu(stu); //判断 if(n>0) { out.print(""); } else { System.out.println("检查dao方法"); } }}

package com.cdl.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.cdl.biz.ClassBiz; import com.cdl.biz.IClassBiz; import com.cdl.biz.IStuBiz; import com.cdl.biz.ITeacBiz; import com.cdl.biz.StuBiz; import com.cdl.biz.TeaBiz; import com.cdl.entity.Class; import com.cdl.entity.Student; import com.cdl.entity.Teacher; /** * 执行删除 */ @WebServlet("/delete.do") 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"); //获取out PrintWriter out = response.getWriter(); //接收值 String sid = request.getParameter("sid"); //System.out.println(sid+"==================="); //调用biz层 IStuBiz stb = new StuBiz(); int n = stb.delStu(Integer.parseInt(sid)); //判断 if(n>0) { out.print(""); } else { System.out.println("检查dao方法"); } }}

package com.cdl.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.cdl.biz.ClassBiz; import com.cdl.biz.HobbyBiz; import com.cdl.biz.IClassBiz; import com.cdl.biz.IHobbyBiz; import com.cdl.biz.IStuBiz; import com.cdl.biz.ITeacBiz; import com.cdl.biz.StuBiz; import com.cdl.biz.TeaBiz; import com.cdl.entity.Class; import com.cdl.entity.Habby; import com.cdl.entity.Student; import com.cdl.entity.Teacher; /** * 修改前的修改界面的绑值 */ @WebServlet("/preupdate.do") 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"); //获取out PrintWriter out = response.getWriter(); //接收值 String sid = request.getParameter("sid"); //调用biz层 IStuBiz stb = new StuBiz(); Student stu = stb.getStu(Integer.parseInt(sid)); IHobbyBiz ihb = new HobbyBiz(); IClassBiz icb = new ClassBiz(); List clzall = icb.getAll(); ITeacBiz itb = new TeaBiz(); List teaall = itb.getAll(); List hall = ihb.getAll(); //实例化一个爱好的集合 List ls = new ArrayList(); String ss = stu.getSs(); String[] split = ss.split(","); for (String string : split) { Habby hob = ihb.getHob(Integer.parseInt(string)); //加进去 ls.add(hob); }//将集合存起来 request.setAttribute("clzall", clzall); request.setAttribute("teaall", teaall); request.setAttribute("ls", ls); request.setAttribute("hall", hall); request.setAttribute("stu", stu); //+clzall+teaall+ls+hall //System.out.println(stu+"================="); //转发 request.getRequestDispatcher("update.jsp").forward(request, response); } }

package com.cdl.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.cdl.biz.ClassBiz; import com.cdl.biz.IClassBiz; import com.cdl.biz.IStuBiz; import com.cdl.biz.ITeacBiz; import com.cdl.biz.StuBiz; import com.cdl.biz.TeaBiz; import com.cdl.entity.Class; import com.cdl.entity.Student; import com.cdl.entity.Teacher; /** * 执行修改操作 */ @WebServlet("/update.do") public class UpdateServlet 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 sid = request.getParameter("sid"); String sname = request.getParameter("sname"); String tid = request.getParameter("tname"); String cid = request.getParameter("cname"); String [] id = request.getParameterValues("hname"); String hb = ""; for (String string : id) { hb+=string; }//调用biz层 ITeacBiz itb = new TeaBiz(); Teacher tea = itb.getTea(Integer.valueOf(tid)); IClassBiz icb = new ClassBiz(); Class clz = icb.getClz(Integer.valueOf(cid)); IStuBiz stb = new StuBiz(); Student stu = new Student(Integer.parseInt(sid), sname, clz, tea, hb); int n = stb.upStu(stu, Integer.parseInt(sid)); //判断 if(n>0) { out.print(""); } else { System.out.println("检查dao方法"); } }}

四、界面代码 index.jsp
Insert title here主界面
爱好: ${hobby.hname}
学生的id 学生的姓名 学生的教员 学生的所在班级 学生的爱好 操作
${stu.sid} ${stu.sname} ${stu.tea.tname} ${stu.c.cname} ${h.hname} 修改 删除
首页 1?pageIndex-1:1}">上一页 [${pageIndex}/${max}] 下一页 尾页

运行效果
J2EE|学生管理系统的增删改查
文章图片




add.jsp
Insert title here新增页面                                                                                
学号
名字
教员
班级
爱好 ${hobby.hname}


运行效果
J2EE|学生管理系统的增删改查
文章图片



update.jsp
Insert title here修改页面                                                                                
学号
名字
教员
班级
爱好 checked="checked"/>${hobby.hname}


运行效果
J2EE|学生管理系统的增删改查
文章图片

删除
J2EE|学生管理系统的增删改查
文章图片



    推荐阅读