目录
需求:
《如图》
一,三层架构与mvc
(1)util层
<代码演示>
DBHelper类
package com.dengxiyan.util;
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("数据库连接(关闭)成功");
}
}
config文件
与DBHelper同包,需要连接什么数据库就把相关代码打开
#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/db_zsgc?useUnicode=true&characterEncoding=UTF-8&useSSL=false
user=root
pwd=123456
(2)entity层
Student学生实体类
<代码演示>
package com.dengxiyan.entity;
/**
* 实体类:学生类
* @author DXY
*2022年6月15日下午4:06:24
*/
public class Student {
private int sid;
private String sname;
private Teacher tid;
private Class cid;
private Like aid;
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 Teacher getTid() {
return tid;
}
public void setTid(Teacher tid) {
this.tid = tid;
}
public Class getCid() {
return cid;
}
public void setCid(Class cid) {
this.cid = cid;
}
public Like getAid() {
return aid;
}
public void setAid(Like aid) {
this.aid = aid;
}
public Student() {
// TODO Auto-generated constructor stub
}
public Student(int sid, String sname, Teacher tid, Class cid, Like aid) {
super();
this.sid = sid;
this.sname = sname;
this.tid = tid;
this.cid = cid;
this.aid = aid;
}
public Student(String sname, Teacher tid, Class cid, Like aid) {
super();
this.sname = sname;
this.tid = tid;
this.cid = cid;
this.aid = aid;
}
public Student(String sname) {
super();
this.sname = sname;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", tid=" + tid + ", cid=" + cid + ", aid=" + aid + "]";
}
}
Class实体类
<代码演示>
package com.dengxiyan.entity;
/**
* 实体类:班级类
* @author DXY
*2022年6月15日下午4:07:26
*/
public class Class {
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;
}
public Class(String cname) {
super();
this.cname = cname;
}
@Override
public String toString() {
return "Class [cid=" + cid + ", cname=" + cname + "]";
}
}
Like实体类
<代码演示>
package com.dengxiyan.entity;
/**
* 爱好类
* @author DXY
*2022年6月15日下午4:05:58
*/
public class Like {
private int aid;
private String aname;
public int getAid() {
return aid;
}
public void setAid(int aid) {
this.aid = aid;
}
public String getAname() {
return aname;
}
public void setAname(String aname) {
this.aname = aname;
}
public Like() {
// TODO Auto-generated constructor stub
}
public Like(int aid, String aname) {
super();
this.aid = aid;
this.aname = aname;
}
public Like(String aname) {
super();
this.aname = aname;
}
@Override
public String toString() {
return "Like [aid=" + aid + ", aname=" + aname + "]";
}
}
Teacher实体类
<代码演示>
package com.dengxiyan.entity;
/**
* 实体类:老师类
* @author DXY
*2022年6月15日下午4:06:08
*/
public class Teacher {
private int tid;
private String tname;
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 Teacher() {
// TODO Auto-generated constructor stub
}
public Teacher(int tid, String tname) {
super();
this.tid = tid;
this.tname = tname;
}
public Teacher(String tname) {
super();
this.tname = tname;
}
@Override
public String toString() {
return "Teacher [tid=" + tid + ", tname=" + tname + "]";
}
}
(3)dao层
<代码演示>
学生数据接口
<代码演示>
package com.dengxiyan.dao;
import java.util.List;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
public interface IStudentDao {
/**
* 查询全部
* @return 集合
*/
public List<Student> getAll();
/**
* 模糊查询
* @param colName 列名
* @param str 关键字
* @return 对象结果集
*/
public List<Student> getAll(String colName,String str);
/**
* 单个查询
* @param sid 编号
* @return 对象
*/
public Student getStu(int sid);
/**
* 增加
* @param stu 对象
* @return 影响行数
*/
public int AddStu(Student stu,Teacher t,Class c,Like a);
/**
* 删除
* @param sid 编号
* @return 影响行数
*/
public int DeleteStu(int sid);
/**
* 修改
* @param stu 对象
* @param sid 编号
* @return 影响行数
*/
public int UpdateStu(Student stu,int sid);
}
学生数据访问层
<代码演示>
package com.dengxiyan.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
import com.dengxiyan.util.DBHelper;
/**
* 学生数据访问层
* @author DXY
*2022年6月15日下午4:58:05
*/
public class StudentDao implements IStudentDao{
private Connection conn ;
private Statement stmt;
//private PreparedStatement ps;
private ResultSet rs;
@Override
public List<Student> getAll() {
List<Student> ls = new ArrayList<Student>();
try {
conn = DBHelper.getConnection();
String sql = "select * from tb_student";
stmt=conn.prepareStatement(sql);
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//实例化对象
Student stu = new Student();
//给对象赋值
stu.setSid(rs.getInt(1));
stu.setSname(rs.getString(2));
stu.setTid(new TeacherDao().getTea(rs.getInt(3)));
stu.setCid(new ClassDao().getCla(rs.getInt(4)));
stu.setAid(new LikeDao().getLi(rs.getInt(5)));
//加到集合里
ls.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return ls;
}
@Override
public List<Student> getAll(String colName, String str) {
List<Student> ls = new ArrayList<Student>();
try {
conn = DBHelper.getConnection();
String sql = "select * from tb_student where "+colName+" like '%"+str+"%'";
stmt=conn.prepareStatement(sql);
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//实例化对象
Student stu = new Student();
//给对象赋值
stu.setSid(rs.getInt(1));
stu.setSname(rs.getString(2));
stu.setTid(new TeacherDao().getTea(rs.getInt(3)));
stu.setCid(new ClassDao().getCla(rs.getInt(4)));
stu.setAid(new LikeDao().getLi(rs.getInt(5)));
//加到集合里
ls.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return ls;
}
@Override
public Student getStu(int sid) {
//实例化对象
Student stu = new Student();
try {
conn = DBHelper.getConnection();
String sql = "select * from tb_student where sid="+sid;
stmt=conn.prepareStatement(sql);
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//给对象赋值
stu.setSid(rs.getInt(1));
stu.setSname(rs.getString(2));
stu.setTid(new TeacherDao().getTea(rs.getInt(3)));
stu.setCid(new ClassDao().getCla(rs.getInt(4)));
stu.setAid(new LikeDao().getLi(rs.getInt(5)));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return stu;
}
@Override
public int AddStu(Student stu, Teacher t, Class c, Like a) {
int n = 0;
try {
//获得连接
conn = DBHelper.getConnection();
//定义sql语句
String sql = "insert into tb_student("+stu.getSid()+","+stu.getSname()+","+t.getTid()+","+c.getCid()+","+a.getAid()+")";
//获得执行对象
stmt = conn.prepareStatement(sql);
//开始执行
n = stmt.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return n;
}
@Override
public int DeleteStu(int sid) {
int n = 0;
try {
//获得连接
conn = DBHelper.getConnection();
//定义sql语句
String sql = "delete from tb_student where sid="+sid;
//获得执行对象
stmt = conn.prepareStatement(sql);
//开始执行
n = stmt.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return n;
}
@Override
public int UpdateStu(Student stu, int sid) {
int n = 0;
try {
//获得连接
conn = DBHelper.getConnection();
//定义sql语句
String sql = "update tb_student set "+stu.getSid()+","+stu.getSname()+","+stu.getTid()+","+stu.getCid()+","+stu.getAid()+")";
//获得执行对象
stmt = conn.prepareStatement(sql);
//开始执行
n = stmt.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return n;
}
public static void main(String[] args) {
/*Student stu = new Student("小邓");
Teacher t = new Teacher("小希");
Class lc = new Class(1,"qeq");
Like a = new Like("摄影");
StudentDao sd = new StudentDao();
System.out.println(sd.AddStu(stu, t, lc, a));*/
}
}
教师数据接口
<代码演示>
package com.dengxiyan.dao;
import java.util.List;
import com.dengxiyan.entity.Teacher;
/**
* 教师数据访问层接口
* @author DXY
*2022年6月15日下午5:14:11
*/
public interface ITeacherDao {
/**
* 根据编号拿值
* @param tid 编号
* @return
*/
public Teacher getTea(int tid);
/**
* 查询全部的方法
* @return
*/
public List<Teacher> getAll();
}
教师数据访问层
<代码演示>
package com.dengxiyan.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.dengxiyan.entity.Teacher;
import com.dengxiyan.util.DBHelper;
/**
* 教师数据访问层
* @author DXY
*2022年6月15日下午5:14:54
*/
public class TeacherDao implements ITeacherDao{
private Connection conn ;
private Statement stmt;
//private PreparedStatement ps;
private ResultSet rs;
@Override
public Teacher getTea(int tid) {
//实例化对象
Teacher t = new Teacher();
try {
//获得连接
conn = DBHelper.getConnection();
//定义sql语句
String sql = "select * from tb_teacher where tid="+tid;
//获得执行对象
//ps=con.prepareStatement(sql);
stmt = conn.prepareStatement(sql);
//获得结果集
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//给对象赋值
t.setTid(rs.getInt(1));
t.setTname(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.close(conn, stmt, rs);
}
return t;
}
/*public static void main(String[] args) {
TeacherDao td = new TeacherDao();
System.out.println(td.getTea(2));
}*/
@Override
public List<Teacher> getAll() {
List<Teacher> ls = new ArrayList<Teacher>();
try {
conn = DBHelper.getConnection();
String sql = "select * from tb_teacher";
stmt=conn.prepareStatement(sql);
rs = stmt.executeQuery(sql);
//遍历结果集
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.close(conn, stmt, rs);
}
return ls;
}
}
班级数据接口
<代码演示>
package com.dengxiyan.dao;
import java.util.List;
import com.dengxiyan.entity.Class;
/**
* 班级数据访问层接口
* @author DXY
*2022年6月15日下午5:15:40
*/
public interface IClassDao {
/**
* 查询单个
* @param cid 编号
* @return
*/
public Class getCla(int cid);
/**
* 查询全部
* @return
*/
public List<Class> getAll();
}
班级数据访问层
<代码演示>
package com.dengxiyan.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.dengxiyan.entity.Class;
import com.dengxiyan.util.DBHelper;
/**
* 班级数据访问层
* @author DXY
*2022年6月15日下午5:15:57
*/
public class ClassDao implements IClassDao{
private Connection conn ;
private Statement stmt;
//private PreparedStatement ps;
private ResultSet rs;
@Override
public Class getCla(int cid) {
//实例化对象
Class c = new Class();
try {
//获得连接
conn = DBHelper.getConnection();
//定义sql语句
String sql = "select * from tb_class where cid="+cid;
//获得执行对象
//ps=con.prepareStatement(sql);
stmt = conn.prepareStatement(sql);
//获得结果集
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//给对象赋值
c.setCid(rs.getInt(1));
c.setCname(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.close(conn, stmt, rs);
}
return c;
}
@Override
public List<Class> getAll() {
List<Class> ls = new ArrayList<Class>();
try {
conn = DBHelper.getConnection();
String sql = "select * from tb_class";
stmt=conn.prepareStatement(sql);
rs = stmt.executeQuery(sql);
//遍历结果集
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.close(conn, stmt, rs);
}
return ls;
}
/*public static void main(String[] args) {
ClassDao cd = new ClassDao();
System.out.println(cd.getCla(4));
}*/
}
爱好数据接口
<代码演示>
package com.dengxiyan.dao;
import java.util.List;
import com.dengxiyan.entity.Like;
/**
* 爱好数据访问层接口
* @author DXY
*2022年6月15日下午5:15:17
*/
public interface ILikeDao {
/**
* 根据aid拿值
* @param aid 编号
* @return
*/
public Like getLi(int aid);
/**
* 查询全部
* @return
*/
public List<Like> getAll();
}
爱好数据访问层
<代码演示>
package com.dengxiyan.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.dengxiyan.entity.Like;
import com.dengxiyan.util.DBHelper;
/**
* 爱好数据访问层
* @author DXY
*2022年6月15日下午5:12:55
*/
public class LikeDao implements ILikeDao {
private Connection conn ;
private Statement stmt;
//private PreparedStatement ps;
private ResultSet rs;
@Override
public Like getLi(int aid) {
//实例化对象
Like a = new Like();
try {
//获得连接
conn = DBHelper.getConnection();
//定义sql语句
String sql = "select * from tb_like where aid="+aid;
//获得执行对象
//ps=con.prepareStatement(sql);
stmt = conn.prepareStatement(sql);
//获得结果集
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//给对象赋值
a.setAid(rs.getInt(1));
a.setAname(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.close(conn, stmt, rs);
}
return a;
}
@Override
public List<Like> getAll() {
List<Like> ls = new ArrayList<Like>();
try {
conn = DBHelper.getConnection();
String sql = "select * from tb_like";
stmt=conn.prepareStatement(sql);
rs = stmt.executeQuery(sql);
//遍历结果集
while(rs.next()) {
//实例化对象
Like a = new Like();
//给对象赋值
a.setAid(rs.getInt(1));
a.setAname(rs.getString(2));
//加到集合里
ls.add(a);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.close(conn, stmt, rs);
}
return ls;
}
/*public static void main(String[] args) {
LikeDao ld = new LikeDao();
System.out.println(ld.getLi(3));
}*/
}
(4)biz层
学生逻辑层接口
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
public interface IStudentBiz {
/**
* 查询全部
* @return 集合
*/
public List<Student> getAll();
/**
* 模糊查询
* @param colName 列名
* @param str 关键字
* @return 对象结果集
*/
public List<Student> getAll(String colName,String str);
/**
* 单个查询
* @param sid 编号
* @return 对象
*/
public Student getStu(int sid);
/**
* 增加
* @param stu 对象
* @return 影响行数
*/
public int AddStu(Student stu,Teacher t,Class c,Like a);
/**
* 删除
* @param sid 编号
* @return 影响行数
*/
public int DeleteStu(int sid);
/**
* 修改
* @param stu 对象
* @param sid 编号
* @return 影响行数
*/
public int UpdateStu(Student stu,int sid);
}
学生逻辑层
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.dao.IStudentDao;
import com.dengxiyan.dao.StudentDao;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
public class StudentBiz implements IStudentBiz {
//实例化数据访问层
IStudentDao isd =new StudentDao();
@Override
public List<Student> getAll() {
// TODO Auto-generated method stub
return isd.getAll();
}
@Override
public List<Student> getAll(String colName, String str) {
// TODO Auto-generated method stub
return isd.getAll(colName, str);
}
@Override
public Student getStu(int sid) {
// TODO Auto-generated method stub
return isd.getStu(sid);
}
@Override
public int AddStu(Student stu, Teacher t, Class c, Like a) {
// TODO Auto-generated method stub
return isd.AddStu(stu, t, c, a);
}
@Override
public int DeleteStu(int sid) {
// TODO Auto-generated method stub
return isd.DeleteStu(sid);
}
@Override
public int UpdateStu(Student stu, int sid) {
// TODO Auto-generated method stub
return isd.UpdateStu(stu, sid);
}
}
教师逻辑接口
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.entity.Teacher;
/**
* 教师数据逻辑层接口
* @author DXY
*2022年6月15日下午5:14:11
*/
public interface ITeacherBiz {
/**
* 根据编号拿值
* @param tid 编号
* @return
*/
public Teacher getTea(int tid);
/**
* 查询全部的方法
* @return
*/
public List<Teacher> getAll();
}
教师逻辑层
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.dao.ITeacherDao;
import com.dengxiyan.dao.TeacherDao;
import com.dengxiyan.entity.Teacher;
public class TeacherBiz implements ITeacherBiz{
//调用数据访问层
ITeacherDao itd = new TeacherDao();
@Override
public Teacher getTea(int tid) {
// TODO Auto-generated method stub
return itd.getTea(tid);
}
@Override
public List<Teacher> getAll() {
// TODO Auto-generated method stub
return itd.getAll();
}
}
班级逻辑接口
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.entity.Class;
/**
* 班级数据逻辑层接口
* @author DXY
*2022年6月15日下午5:15:40
*/
public interface IClassBiz {
/**
* 查询单个
* @param cid 编号
* @return
*/
public Class getCla(int cid);
/**
* 查询全部
* @return
*/
public List<Class> getAll();
}
班级逻辑层
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.dao.ClassDao;
import com.dengxiyan.dao.IClassDao;
import com.dengxiyan.entity.Class;
public class ClassBiz implements IClassBiz{
//实例化数据访问层
IClassDao icd = new ClassDao();
@Override
public Class getCla(int cid) {
// TODO Auto-generated method stub
return icd.getCla(cid);
}
@Override
public List<Class> getAll() {
// TODO Auto-generated method stub
return icd.getAll();
}
}
爱好逻辑接口
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.entity.Like;
/**
* 爱好数据逻辑层接口
* @author DXY
*2022年6月15日下午5:15:40
*/
public interface ILikeBiz {
/**
* 查询单个
* @param cid 编号
* @return
*/
public Like getLi(int aid);
public List<Like> getAll();
}
爱好逻辑层
<代码演示>
package com.dengxiyan.biz;
import java.util.List;
import com.dengxiyan.dao.ILikeDao;
import com.dengxiyan.dao.LikeDao;
import com.dengxiyan.entity.Like;
public class LikeBiz implements ILikeBiz{
//调用数据访问层
ILikeDao ild = new LikeDao();
@Override
public Like getLi(int aid) {
// TODO Auto-generated method stub
return ild.getLi(aid);
}
@Override
public List<Like> getAll() {
// TODO Auto-generated method stub
return ild.getAll();
}
}
(5)servlet层
(1)主界面绑值
<代码演示>
package com.dengxiyan.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.dengxiyan.biz.ClassBiz;
import com.dengxiyan.biz.IClassBiz;
import com.dengxiyan.biz.ILikeBiz;
import com.dengxiyan.biz.IStudentBiz;
import com.dengxiyan.biz.ITeacherBiz;
import com.dengxiyan.biz.LikeBiz;
import com.dengxiyan.biz.StudentBiz;
import com.dengxiyan.biz.TeacherBiz;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
/**
* Servlet implementation class SelectServlet
*/
@WebServlet("/select.do")
public class SelectServlet 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.setContentType("text/html; charset=UTF-8");
//接收表单传过来的值
String sid = request.getParameter("sid");
String tid = request.getParameter("tid");
String cid = request.getParameter("sid");
String aid = request.getParameter("aid");
//实例化
PrintWriter out = response.getWriter();
//调用业务逻辑层
IStudentBiz isb = new StudentBiz();
ITeacherBiz itb = new TeacherBiz();
IClassBiz icb = new ClassBiz();
ILikeBiz ilb = new LikeBiz();
//调用查询单个的方法
Student stu = isb.getStu(Integer.parseInt(sid));
Teacher t = itb.getTea(Integer.parseInt(tid));
Class c = icb.getCla(Integer.parseInt(cid));
Like a = ilb.getLi(Integer.parseInt(aid));
//存值
request.setAttribute("s", stu);
request.setAttribute("t", t);
request.setAttribute("c", c);
request.setAttribute("a", a);
//判断
if(stu!=null) {
//跳转
request.getRequestDispatcher("select.jsp").forward(request, response);
}
else {
out.print("集合为空");
}
}
}
(2)增加servlet
<代码演示>
package com.dengxiyan.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.dengxiyan.biz.ClassBiz;
import com.dengxiyan.biz.IClassBiz;
import com.dengxiyan.biz.ILikeBiz;
import com.dengxiyan.biz.IStudentBiz;
import com.dengxiyan.biz.ITeacherBiz;
import com.dengxiyan.biz.LikeBiz;
import com.dengxiyan.biz.StudentBiz;
import com.dengxiyan.biz.TeacherBiz;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
/**
* Servlet implementation class AddServlet
*/
@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.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
//接收表单传过来的值
String stu = request.getParameter("sname");
String tid = request.getParameter("teacher");
String cid = request.getParameter("class");
String aid = request.getParameter("like");
String like = "";//用来拼接
for (String str : aids) {
like+=str+" ";//用空格进行隔开
}
List<Like> ls= new ArrayList<>();
String[] str= hsy.split(" ");
for (String aid : str) {
//查询单个
Like a = ilb.getLi(Integer.parseInt(aid));
ls.add(a );
}
//调用业务逻辑层
IStudentBiz isb = new StudentBiz();
ITeacherBiz itb = new TeacherBiz();
IClassBiz icb = new ClassBiz();
ILikeBiz ilb = new LikeBiz();
//调用查询单个的方法
Teacher t = itb.getTea(Integer.parseInt(tid));
Class c = icb.getCla(Integer.parseInt(cid));
//调用增加的方法
int n = isb.AddStu(stu, t, c, a);
//判断
if(n>0) {
out.print("<script>alert('增加成功');location.href='index.jsp';</script>");
}
else {
out.print("<script>alert('增加失败');location.href='add.jsp';</script>");
}
}
}
(3)
修改前servrlet
package com.dengxiyan.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.dengxiyan.biz.ClassBiz;
import com.dengxiyan.biz.IClassBiz;
import com.dengxiyan.biz.ILikeBiz;
import com.dengxiyan.biz.IStudentBiz;
import com.dengxiyan.biz.ITeacherBiz;
import com.dengxiyan.biz.LikeBiz;
import com.dengxiyan.biz.StudentBiz;
import com.dengxiyan.biz.TeacherBiz;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
/**
* Servlet implementation class AddServlet
*/
@WebServlet("/xgq.do")
public class XgServlet 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.setContentType("text/html; charset=UTF-8");
//接收表单提交过来的值
String sid = request.getParameter("sid");
//调用业务逻辑层
IStudentBiz isb = new StudentBiz();
ITeacherBiz itb = new TeacherBiz();
IClassBiz icb = new ClassBiz();
ILikeBiz ilb = new LikeBiz();
//调用查询全部的方法
//调用查询所有的方法
List<Student> ls1 = isb.getAll();
List<Teacher> ls2 = itb.getAll();
List<Class> ls3 = icb.getAll();
List<Like> ls4 = ilb.getAll();
String a = "";
for (String aid : ls4) {
int n = aid.getLie();
a+=aid+"";
}
//判断
if(ls1!=null&&ls2!=null&&ls3!=null&&ls4!=null) {
//加到集合中
request.setAttribute("a", ls4);
request.setAttribute("s", ls1);
request.setAttribute("t", ls2);
request.setAttribute("c", ls3);
request.setAttribute("a", a);
//转发
request.getRequestDispatcher("update.jsp").forward(request, response);
}
else {
System.out.println("集合为空");
}
}
}
修改servlet
<代码演示>
package com.dengxiyan.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.dengxiyan.biz.ClassBiz;
import com.dengxiyan.biz.IClassBiz;
import com.dengxiyan.biz.ILikeBiz;
import com.dengxiyan.biz.IStudentBiz;
import com.dengxiyan.biz.ITeacherBiz;
import com.dengxiyan.biz.LikeBiz;
import com.dengxiyan.biz.StudentBiz;
import com.dengxiyan.biz.TeacherBiz;
import com.dengxiyan.entity.Class;
import com.dengxiyan.entity.Like;
import com.dengxiyan.entity.Student;
import com.dengxiyan.entity.Teacher;
/**
* Servlet implementation class AddServlet
*/
@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");
//接收表单传过来的值
String sid = request.getParameter("sid");
String sname = request.getParameter("sname");
String tid = request.getParameter("teacher");
String cid = request.getParameter("class");
String aid = request.getParameter("like");
String like = "";//用来拼接
for (String str : aids) {
like+=str+" ";//用空格进行隔开
}
PrintWriter out = response.getWriter();
//调用业务逻辑层
IStudentBiz isb = new StudentBiz();
ITeacherBiz itb = new TeacherBiz();
IClassBiz icb = new ClassBiz();
ILikeBiz ilb = new LikeBiz();
List<Like> ls= new ArrayList<>();
String[] str= hsy.split(" ");
for (String aid : str) {
//查询单个
Like a = ilb.getLi(Integer.parseInt(aid));
ls.add(a );
}
//调用查询单个的方法
Teacher t = itb.getTea(Integer.parseInt(tid));
Class c = icb.getCla(Integer.parseInt(cid));
//调用修改的方法
int n = isb.updStu(Integer.parseInt(sid), sname, tid, cid, aid);
if(n>0) {
out.print("<script>alert('修改成功');location.href='index.jsp'</script>");
}
else {
out.print("<script>alert('修改失败');location.href='XgServlet?sid="+sid+"'</script>");
}
}
}
(4)删除servlet
<代码演示>
package com.dengxiyan.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.dengxiyan.biz.IStudentBiz;
import com.dengxiyan.biz.StudentBiz;
/**
* Servlet implementation class DeleteServlet
*/
@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.setContentType("text/html; charset=UTF-8");
//接收表单传过来的值
String sid = request.getParameter("sid");
//实例化
PrintWriter out = response.getWriter();
//调用业务逻辑层
IStudentBiz isb = new StudentBiz();
//调用删除的方法
int n = isb.DeleteStu(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>");
}
}
}
二,主界面
<主界面代码>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主界面</title>
<center>
<h2>主界面</h2>
<!--教师下拉框 -->
<c:if test="${empty t}">
<jsp:forward page="index.do"></jsp:forward>
</c:if>
<select name="teacher">
<c:forEach items="${t}" var="t">
<option value="${t.tid}">${t.tname}</option>
</c:forEach>
</select>
<!-- 班级下拉框 -->
<c:if test="${empty c}">
<jsp:forward page="index.do"></jsp:forward>
</c:if>
<select name="class">
<c:forEach items="${c}" var="c">
<option value="${c.cid}">${c.cname}</option>
</c:forEach>
</select>
<!-- 爱好复选框 -->
<c:if test="${empty a}">
<jsp:forward page="index.do"></jsp:forward>
</c:if>
<c:forEach items="${a}" var="a">
<input type="checkbox" name="like" value="${a.aid }">${a.aname}
</c:forEach>
<input type="submit" value="查询">
<br>
<table border="1px">
<tr>
<td>学生编号</td>
<td>学生姓名</td>
<td>学生教师</td>
<td>学生班级</td>
<td>学生爱好</td>
<td>操作<a href="add.jsp"> 增加</a></td>
</tr>
<c:if test="${empty s}">
<jsp:forward page="index.do"></jsp:forward>
</c:if>
<c:forEach items="${s}" var="s">
<tr>
<td>${s.sid}</td>
<td>${s.sname}</td>
<td>${s.tid.tname}</td>
<td>${s.cid.cname}</td>
<td>${s.aid.aname}</td>
<td><a onclick="return confirm('你确定要删除吗?')" href="delete.do?sid=${s.sid}">删除</a> <a href="xgq.do?sid=${s.sid}">修改</a></td>
</tr>
</c:forEach>
</table>
</center>
</head>
<body>
</body>
</html>
<效果图>
分页展示
三,增加
《增加页面代码》
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>增加界面</title>
</head>
<body>
<center>
<form action="add.do" method="post">
<table>
<tr>
<td>学生姓名</td>
<td><input type="text" name="sname"></td>
</tr>
<tr>
<td>学生教员</td>
<td>
<select name="tid">
<c:forEach items="${t}" var="t">
<option value="${t.tid }">${t.tname }</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>学生班级</td>
<td>
<select name="cid">
<c:forEach items="${c}" var="c">
<option value="${c.cid }">${c.cname}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>学生爱好</td>
<td>
<c:forEach items="${a}" var="a">
<input type="checkbox" name="aid" value="${a.aid }">${a.aname }
</c:forEach>
</td>
</tr>
</table>
<input type="submit" value="确定">
<input type="reset" value="清空">
</form>
</center>
</body>
</html>
《增加效果图》
四,删除
《删除效果图》
代码在主界面jsp代码里
五,修改
《修改jsp代码》
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>修改</title>
</head>
<body>
<center>
<form action="update.do" method="post">
<table>
<tr>
<td>学生编号</td>
<td><input type="text" name="sid" value="${s.sid }" readonly="readonly"></td>
</tr>
<tr>
<td>学生姓名</td>
<td><input type="text" name="sname" value="${s.sname }" ></td>
</tr>
<tr>
<td>学生教员</td>
<td>
<select name="tid">
<c:forEach items="${t}" var="t">
<option value="${t.tid }" <c:if test="${s.tid.tid==t.tid }">selected="selected"</c:if> >${t.tname }</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>学生班级</td>
<td>
<select name="cid">
<c:forEach items="${c}" var="c">
<option value="${c.cid }" <c:if test="${stu.cid.cid==c.cid }">selected="selected"</c:if> >${c.cname}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>学生爱好</td>
<td>
<input type="checkbox" name="aid" value="1" <c:if test="${a.contains('1 ') }">checked</c:if>>篮球
<input type="checkbox" name="aid" value="2" <c:if test="${a.contains('2 ') }">checked</c:if>>足球
<input type="checkbox" name="aid" value="3" <c:if test="${a.contains('3 ') }">checked</c:if>>唱歌
<input type="checkbox" name="aid" value="4" <c:if test="${a.contains('4 ') }">checked</c:if>>跳舞
</td>
</tr>
</table>
<input type="submit" value="修改">
<input type="reset" value="清空">
</form>
</center>
</body>
</html>
《修改效果图》