学生系统增删改查

目录

一,三层架构与mvc

二,主界面

三,增加

四,删除

五,修改


需求:

《如图》

一,三层架构与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">&nbsp;增加</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>&nbsp;<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>

《修改效果图》

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值