发布时间:2023-10-19 15:30
目录
一、数据库的设计
二、底层代码1(实体类以及dao方法)
三、底层代码二(servlet)
四、界面代码
使用工具:MySQL和eclipse
目标需求:
1.利用MySQL建4张表 分别为 学生表 教员表 班级表 爱好表
2.要求带条件的模糊查询(两个下拉框以及一个复选框)和分页
3.新增功能
4.修改界面,值回显的问题(显示已选中的爱好)
5.删除功能
爱好表(1代表篮球 2代表足球 3代表唱歌 4代表跳舞)
tb_class
tb_habby
tb_stu
tb_teacher
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;
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) {
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) {
int n = 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 Class getClz(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 Class getClz(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();
}
}
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
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\"
pageEncoding=\"UTF-8\"%>
<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>
Insert title here
主界面
学生的id
学生的姓名
学生的教员
学生的所在班级
学生的爱好
操作
${stu.sid}
${stu.sname}
${stu.tea.tname}
${stu.c.cname}
${h.hname}
修改
删除
首页
1?pageIndex-1:1}\">上一页
[${pageIndex}/${max}]
下一页
尾页
运行效果
add.jsp
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\"
pageEncoding=\"UTF-8\"%>
<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>
Insert title here
新增页面
运行效果
update.jsp
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\"
pageEncoding=\"UTF-8\"%>
<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>
Insert title here
修改页面
运行效果
删除