一、项目效果展示
本项目包含丰富子项目,涵盖增删改查和swing等基础java知识,Java+MySQL数据库+可视化图形界面,适用于初学者实战学习。
功能:①学籍信息管理 ②选课系统 ③教师课程信息管理 ④学生成绩管理。
代码经过精心调试,运行完全无误后发布。一共四个包,27个类,四个数据库表。如不想复制粘贴,也可以在我的Java专栏中下载本资源。
(一)总体功能结构图
本学生成绩管理系统的具体功能为三个模块和十五个子功能模块。下图为系统的总体功能结构图,如图 1-1 所示。
(二)界面演示
(三)项目结构目录
src包下建立四个package,每个package下创建相应的类名:
(四)开发环境
(1)操作系统:Windows 11
(2)数据库:MySQL
(3)开发环境:IDEA
(4)开发语言:Java
(五)项目结构
学生管理模块
- 1 添加学生界面
- 2 修改学生信息
- 3 删除学生信息
- 4 学生选课界面
- 5 查询学生信息
课程管理模块
- 1 添加课程信息
- 2 修改课程信息
- 3 删除课程信息
- 4 课程查询
成绩管理模块
- 1 录入成绩
- 2 修改成
- 3 查询成绩
(六)图形界面
添加界面:
修改界面
删除界面
选课界面
查询界面
添加课程
修改课程
删除课程
课程查询
录入成绩
修改成绩
查询成绩
二、数据库
建库
建立一个名为yybtest的数据库,下面新建4个数据表
建表
course表
grade表
student表
studenttab表
三、源代码
manager包
CourseManager类
package cvit.com.manager; import cvit.com.manager.*; import cvit.com.pub.DBConn; import java.sql.Statement; import java.sql.ResultSet; import java.sql.Connection; import cvit.com.model.Course; import java.sql.SQLException; import java.util.Vector; //课程管理类 public class CourseManager { //添加课程信息 public int addCourse(Course c) { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "insert into course values('" + c.getCno()+ "', '" + c.getCname() + "', '" + c.getCteacher() +"', '" + c.getCtype() + "', '" + c.getCplace() +"', '" + c.getCtime() +"')"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } return i; } //删除课程信息 public int deleteCourse(String cno) { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "delete from course where cno='" + cno +"'"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return i; } //修改课程信息 public int update_Course(String cno, String cname, String cteacher, String ctype, String cplace, String ctime) { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "update course set cname='" + cname +"', cteacher='"+ cteacher + "', ctype='" + ctype +"', cplace='"+ cplace + "', ctime='" + ctime + "' wherecno='" + cno +"'"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return i; } //根据课程编号查询课程信息 public Course findCourse(String cno) { Connection conn = null; Statement stmt = null; ResultSet rs = null; String sql = "select *from course where cno='" + cno +"'"; Course c = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { c = new Course(); c.setCno(rs.getString("cno")); c.setCname(rs.getString("cname")); c.setCteacher(rs.getString("cteacher")); c.setCtype(rs.getString("ctype")); c.setCplace(rs.getString("cplace")); c.setCtime(rs.getString("ctime")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return c; } //根据课程名称查询课程信息 public Course findCourse_name(String cname) { Connection conn = null; Statement stmt = null; ResultSet rs = null; String sql = "select *from course where cname='" + cname+"'"; Course c = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { c = new Course(); c.setCno(rs.getString("cno")); c.setCname(rs.getString("cname")); c.setCteacher(rs.getString("cteacher")); c.setCtype(rs.getString("ctype")); c.setCplace(rs.getString("cplace")); c.setCtime(rs.getString("ctime")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return c; } //根据教师名称查询课程信息 public Course findCourse_teacher(String cteacher) { Connection conn = null; Statement stmt = null; ResultSet rs = null; String sql = "select *from course where cteacher='" +cteacher + "'"; Course c = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { c = new Course(); c.setCno(rs.getString("cno")); c.setCname(rs.getString("cname")); c.setCteacher(rs.getString("cteacher")); c.setCtype(rs.getString("ctype")); c.setCplace(rs.getString("cplace")); c.setCtime(rs.getString("ctime")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return c; } //查询全部课程名称 public Vector selectCourse() { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); String sql = "select cname from course"; Vector v = new Vector(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { v.add(rs.getString("cname")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return v; } //获得全部教师名称 public Vector selectCourse2() { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); String sql = "select cteacher from course"; Vector v = new Vector(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { v.add(rs.getString("cteacher")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return v; } //根据课程名称查询 public Course findOneCourse(String cname) { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); String sql ="select cno, cteacher, cplace, ctype, ctime from course where cname='" + cname + "'"; Course c = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { c = new Course(); c.setCno(rs.getString("cno")); c.setCteacher(rs.getString("cteacher")); c.setCtype(rs.getString("ctype")); c.setCplace(rs.getString("cplace")); c.setCtime(rs.getString("ctime")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return c; } //根据教师名称查询 public Course findOneCourse2(String cteacher) { Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); String sql ="select cno, cname, cplace, ctype, ctime from course where cteacher='" +cteacher + "'"; Course c = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { c = new Course(); c.setCno(rs.getString("cno")); c.setCname(rs.getString("cname")); c.setCtype(rs.getString("ctype")); c.setCplace(rs.getString("cplace")); c.setCtime(rs.getString("ctime")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return c; } }
GradeManager类
package cvit.com.manager; import cvit.com.model.Grade; import cvit.com.pub.DBConn; import java.sql.Statement; import java.sql.ResultSet; import java.sql.Connection; import cvit.com.model.Grade; import java.sql.SQLException; import java.util.Vector; import cvit.com.model.ZH; //成绩管理类 public class GradeManager { //添加成绩 public int addGrade(Grade g) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "update grade set grade='" + g.getGrade() + "'where sno='" + g.getSno() + "'and cno='" + g.getCno() + "'"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } return i; } //选课 public int chooseCourse(String sno, String cno) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "insert into grade values('" + sno + "', '" + cno +"', ' ')"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } return i; } //根据学号、课程名查询一个学生成绩 public Grade findGrade(String sno, String cno) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 String sql = "select *from grade where sno='" + sno + "'and cno='" + cno + "'"; Grade g = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { g = new Grade(); g.setSno(rs.getString("sno")); g.setCno(rs.getString("cno")); g.setGrade(rs.getString("grade")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return g; } //修改成绩 public int updateGrade(String sno, String cno, String grade) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "update grade set cno='" + cno + "', grade='" + grade + "' where sno='" + sno + "'"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } return i; } //查询一个学生全部学科的成绩 public Vector selectGradestudent(String sno) { Vector list = new Vector(); Connection conn = null; Statement stmt = null; ResultSet rs = null; DBConn db = new DBConn(); conn = db.getConn(); String sql = "select student.sno, sname, course.cno, cname, grade from student, course, grade where grade.sno='" + sno + "'"; ZH zh = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); int i = 0; while (rs.next()) { zh = new ZH(); zh.setCno(rs.getString("cno")); zh.setCname(rs.getString("cname")); zh.setGrade(rs.getString("grade")); list.add(zh); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return list; } }
StudentManager类
package cvit.com.manager; import java.sql.ResultSet; import cvit.com.pub.DBConn; import java.sql.*; import cvit.com.model.*; import java.util.Vector; //学生信息管理类 public class StudentManager { //添加学生信息 public int addStudent(Student s) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "insert into student values('" + s.getSno() + "', '" + s.getSname() + "', '" + s.getSsex() + "', '" + s.getSethnix() + "', '" + s.getShome() + "', '" + s.getSyear() + "', '" + s.getSmajor() + "', '" + s.getScollege() + "', '" + s.getSbirth() + "')"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } return i; } //删除学生信息 public int deleteUser(String sno) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "delete from student where sno='" + sno + "'"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return i; } //修改学生信息 public int update_Student(String sno, String sname, String ssex, String sethnix, String shome, String syear, String smajor, String scollege, String sbirth) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); int i = 0; String sql = "update student set sname='" + sname +"', ssex='" + ssex + "', sethnix='" + sethnix +"', shome='" + shome + "', syear='" + syear +"', smajor='" + smajor + "', scollege='" + scollege +"', sbirth='" + sbirth + "' where sno='" + sno + "'"; try { stmt = conn.createStatement(); i = stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return i; } //根据学号查询学生信息 public Student findStudent(String sno) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 String sql = "select *from student where sno='" + sno + "'"; Student s = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return s; } //根据姓名查询学生信息 public Student findStudentname(String sname) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 String sql = "select *from student where sname='" + sname + "'"; Student s = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return s; } //根据性别查询学生信息 public Student findStudentsex(String ssex) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 String sql = "select *from student where ssex='" + ssex + "'"; Student s = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return s; } //根据专业查询学生信息 public Student findStudenmajor(String smajor) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 String sql = "select *from student where smajor='" + smajor + "'"; Student s = null; DBConn db = new DBConn(); conn = db.getConn(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex3) { ex3.printStackTrace(); } return s; } //按分院查询所有学生信息 public Vector findStudentcollege(String scollege) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 Vector list = new Vector(); DBConn db = new DBConn(); conn = db.getConn(); String sql = "select *from student where scollege='" + scollege + "'"; Student s = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); int i = 0; while (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); list.add(i, s.getSno() + " " + s.getSname() + " " + s.getSsex() + " " + s.getSethnix() + " " + s.getShome() + " " + s.getSyear() + " " + s.getSmajor() + " " + s.getScollege() + " " + s.getSbirth()); i++; } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return list; } //获得全部分院名称 public Vector selectStudentcollege() { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); String sql = "select scollege from student"; Vector v = new Vector(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { v.add(rs.getString("scollege")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return v; } //获得全部专业 public Vector selectStudentmajor() { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); String sql = "select smajor from student"; Vector v = new Vector(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { v.add(rs.getString("smajor")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return v; } //按专业查询 public Vector findStudentmajor(String smajor) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 Vector list = new Vector(); DBConn db = new DBConn(); conn = db.getConn(); String sql = "select *from student where smajor='" + smajor + "'"; Student s = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); int i = 0; while (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); list.add(i, s.getSno() + " " + s.getSname() + " " + s.getSsex() + " " + s.getSethnix() + " " + s.getShome() + " " + s.getSyear() + " " + s.getSmajor() + " " + s.getScollege() + " " + s.getSbirth()); i++; } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return list; } //按性别查询 public Vector findStudentsex1(String ssex) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 Vector list = new Vector(); DBConn db = new DBConn(); conn = db.getConn(); String sql = "select *from student where ssex='" + ssex + "'"; Student s = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); int i = 0; while (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); list.add(i, s.getSno() + " " + s.getSname() + " " + s.getSsex() + " " + s.getSethnix() + " " + s.getShome() + " " + s.getSyear() + " " + s.getSmajor() + " " + s.getScollege() + " " + s.getSbirth()); i++; } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return list; } //按姓名查询 public Vector find; Vector Student_name(String sname) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 Vector list = new Vector(); DBConn db = new DBConn(); conn = db.getConn(); String sql = "select *from student where sname='" + sname + "'"; Student s = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); int i = 0; while (rs.next()) { s = new Student(); s.setSno(rs.getString("sno")); s.setSname(rs.getString("sname")); s.setSsex(rs.getString("ssex")); s.setSethnix(rs.getString("sethnix")); s.setShome(rs.getString("shome")); s.setSyear(rs.getString("syear")); s.setSmajor(rs.getString("smajor")); s.setScollege(rs.getString("scollege")); s.setSbirth(rs.getString("sbirth")); list.add(i, s.getSno() + " " + s.getSname() + " " + s.getSsex() + " " + s.getSethnix() + " " + s.getShome() + " " + s.getSyear() + " " + s.getSmajor() + " " + s.getScollege() + " " + s.getSbirth()); i++; } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return list; } //查询全部 public Vector selectStudent() { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); String sql = "select sno from student"; Vector v = new Vector(); try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { v.add(rs.getString("sno")); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return v; } //通过学号查询全部 public String findOneStudent(String sno) { Connection conn=null; //连接数据库对象 Statement stmt=null; //执行sql语句的对象 ResultSet rs=null; //执行sql语句的返回结果 DBConn db = new DBConn(); conn = db.getConn(); String sql = "select sname from student where sno='" + sno + "'"; String s = ""; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { s = rs.getString("sname"); } rs.close(); stmt.close(); conn.close(); } catch (Exception em) { em.printStackTrace(); System.out.println("sql有错"); } return s; } }
model包
Course类
package cvit.com.model; //包 //课程类 public class Course { public String cno; //课程编号 public String cname; //课程名称 public String cteacher;//任课教师 public String ctype; //科目类型 public String cplace; //上课地点 public String ctime; //上课时间 //以下是set和get方法 public void setCname(String cname) { this.cname = cname; } public void setCno(String cno) { this.cno = cno; } public void setCplace(String cplace) { this.cplace = cplace; } public void setCteacher(String cteacher) { this.cteacher = cteacher; } public void setCtime(String ctime) { this.ctime = ctime; } public void setCtype(String ctype) { this.ctype = ctype; } public String getCtype() { return ctype; } public String getCtime() { return ctime; } public String getCteacher() { return cteacher; } public String getCplace() { return cplace; } public String getCno() { return cno; } public String getCname() { return cname; } }
Grade类
package cvit.com.model; //成绩类 public class Grade { public String sno; //学生学号 public String cno; //课程编号 public String grade; //成绩 //以下是set和get方法 public String getCno() { return cno; } public String getGrade() { return grade; } public String getSno() { return sno; } public void setCno(String cno) { this.cno = cno; } public void setGrade(String grade) { this.grade = grade; } public void setSno(String sno) { this.sno = sno; } }
Student类
package cvit.com.model;//包 //学生类 public class Student { public String sno; //学号 public String sname; //学生姓名 public String ssex; //学生性别 public String sethnix; //民族 public String shome; //籍贯 public String syear; //入学时间 public String smajor; //专业 public String scollege; //所在分院 public String sbirth; //出生日期 //以下是set和get方法 public String getSbirth() { return sbirth; } public String getScollege() { return scollege; } public String getSethnix() { return sethnix; } public String getShome() { return shome; } public String getSmajor() { return smajor; } public String getSname() { return sname; } public String getSno() { return sno; } public String getSsex() { return ssex; } public String getSyear() { return syear; } public void setSbirth(String sbirth) { this.sbirth = sbirth; } public void setScollege(String scollege) { this.scollege = scollege; } public void setSethnix(String sethnix) { this.sethnix = sethnix; } public void setShome(String shome) { this.shome = shome; } public void setSmajor(String smajor) { this.smajor = smajor; } public void setSname(String sname) { this.sname = sname; } public void setSno(String sno) { this.sno = sno; } public void setSsex(String ssex) { this.ssex = ssex; } public void setSyear(String syear) { this.syear = syear; } }
ZH类
package cvit.com.model; //综合查询类 public class ZH { public String sno; //学生学号 public String sname; //学生姓名 public String cno; //课程编号 public String cname; //课程名称 public String grade; //成绩 //以下是set和get方法 public String getCname() { return cname; } public String getCno() { return cno; } public String getGrade() { return grade; } public String getSname() { return sname; } public String getSno() { return sno; } public void setCname(String cname) { this.cname = cname; } public void setCno(String cno) { this.cno = cno; } public void setGrade(String grade) { this.grade = grade; } public void setSname(String sname) { this.sname = sname; } public void setSno(String sno) { this.sno = sno; } }
pub包
DBConn类
package cvit.com.pub; import java.sql.*; public class DBConn{ //连接数据库 private String driver = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/yybtest"; private Connection conn=null; //连接数据库对象 private String user="root"; //用户名 private String pwd="x5"; //口令 public Connection getConn() { try { Class.forName(driver); } catch (ClassNotFoundException ex) { System.out.println("加载驱动程序有错误,驱动程序类不存在"); } try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/yybtest", "root", "x5"); } catch (SQLException ex1) { System.out.print("取得连接的时候有错误,请核对用户名和密码"); } return conn; } //测试是否连接数据库 public static void main(String args[]) { DBConn db = new DBConn(); Connection conn = db.getConn(); System.out.println("Ok"); } }
view包
类1:AllgradePanel
package cvit.com.view; public class AllgradePanel { }
类2:StuMainFrame
package cvit.com.view; import java.awt.*; import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.*; import java.awt.event.*; import java.awt.Dimension; import java.awt.Font; import cvit.com.view.*; //系统主界面 public class StuMainFrame extends JFrame implements ActionListener { //定义菜单条 JMenuBar mb = new JMenuBar(); //定义菜单 JMenu systemment = new JMenu("系统管理"); JMenu studentment = new JMenu("学生管理"); JMenu coursement = new JMenu("课程管理"); JMenu gradement = new JMenu("成绩管理"); JMenu informationment = new JMenu("信息查询"); JMenu student_select = new JMenu("学生查询"); JMenu course_select = new JMenu("课程查询"); JMenu grade_select = new JMenu("成绩查询"); JMenuItem exit = new JMenuItem("退出"); JMenuItem student_add = new JMenuItem("增加"); JMenuItem student_update = new JMenuItem("修改"); JMenuItem student_delete = new JMenuItem("删除"); JMenuItem student_choose = new JMenuItem("学生选课"); JMenuItem course_add = new JMenuItem("课程增加"); JMenuItem course_update = new JMenuItem("课程修改"); JMenuItem course_delete = new JMenuItem("课程删除"); JMenuItem grade_add = new JMenuItem("成绩增加"); JMenuItem grade_update = new JMenuItem("成绩修改"); JMenuItem select_no = new JMenuItem("按学号查询"); JMenuItem select_name = new JMenuItem("按学生姓名查询"); JMenuItem select_sex = new JMenuItem("按学生性别查询"); JMenuItem select_major = new JMenuItem("按专业查询"); JMenuItem select_college = new JMenuItem("按学院查询"); JMenuItem select_cname = new JMenuItem("按课程名称查询"); JMenuItem select_cteacher = new JMenuItem("按授课教师查询"); JMenuItem select_allgrade = new JMenuItem("查询所有科目成绩"); JPanel p = null; JTextField jtf1 = new JTextField(); BorderLayout borderLayout1 = new BorderLayout(); public StuMainFrame() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { getContentPane().setLayout(borderLayout1); this.getContentPane().setBackground(new Color(168, 233, 216)); this.setJMenuBar(mb); jtf1.setBackground(SystemColor.control); jtf1.setEnabled(false); jtf1.setFont(new java.awt.Font("宋体", Font.BOLD, 12)); jtf1.setForeground(Color.cyan); jtf1.setSelectionColor(Color.black); //以下是向菜单条添加菜单项 mb.add(systemment); mb.add(studentment); mb.add(coursement); mb.add(gradement); mb.add(informationment); //以下是向菜单中添加菜单项 systemment.add(exit); //系统管理退出 studentment.add(student_add); //学生管理 studentment.add(student_update); studentment.add(student_delete); studentment.add(student_choose); coursement.add(course_add); //课程管理 coursement.add(course_update); coursement.add(course_delete); gradement.add(grade_add); //成绩管理 gradement.add(grade_update); informationment.add(student_select); //信息查询 informationment.add(course_select); informationment.add(grade_select); //以下是向二级菜单中添加菜单项 student_select.add(select_no); student_select.add(select_name); student_select.add(select_sex); student_select.add(select_major); student_select.add(select_college); course_select.add(select_cname); course_select.add(select_cteacher); grade_select.add(select_allgrade); this.getContentPane().add(jtf1, java.awt.BorderLayout.SOUTH); exit.addActionListener(this); //注册菜单监听 student_add.addActionListener(this); //添加学生信息 student_update.addActionListener(this); //修改学生信息 student_delete.addActionListener(this); //删除学生信息 student_choose.addActionListener(this); //学生选课 course_add.addActionListener(this); //添加课程信息 course_update.addActionListener(this); //修改课程信息 course_delete.addActionListener(this); //删除学生信息 grade_add.addActionListener(this); //添加成绩 grade_update.addActionListener(this); //修改成绩 select_no.addActionListener(this); //按学号查询 select_major.addActionListener(this); //按专业查询 select_cname.addActionListener(this); //按课程名称查询 select_cteacher.addActionListener(this); //按任课教师查询 select_college.addActionListener(this); //按学院查询 select_sex.addActionListener(this); //按性别查询 select_name.addActionListener(this); //按姓名查询 select_allgrade.addActionListener(this); //所有成绩 //版权信息 jtf1.setText("学生信息管理系统版由CVIT开发, 盗版必究! "); jtf1.setHorizontalAlignment(SwingConstants.CENTER); this.setTitle("学生信息管理系统"); //窗体名称 this.setSize(600, 600); //大小 this.setVisible(true); //可见性 //以下为设置窗体居中 //获得屏幕的宽和高 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //获得当前窗体的宽和高 Dimension frameSize = this.getSize(); //设置窗体居中 if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); this.setVisible(true); } public static void main(String[] args) { StuMainFrame sm = new StuMainFrame(); } public void actionPerformed(ActionEvent e) { if (e.getSource() == exit) { //退出 this.setVisible(false); } //添加学生信息 if (e.getSource() == student_add) { if (p != null) { this.remove(p); } //定义一个添加学生信息页面的对象 p = new Add_studentPanel(); //将panel放在页面的中间 this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //修改学生信息 if (e.getSource() == student_update) { if (p != null) { this.remove(p); } p = new Update_studentPanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //删除学生信息 if (e.getSource() == student_delete) { if (p != null) { this.remove(p); } p = new Delete_studentPanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //学生选课 if (e.getSource() == student_choose) { if (p != null) { this.remove(p); } p = new Student_choosePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //添加课程信息 if (e.getSource() == course_add) { if (p != null) { this.remove(p); } p = new Add_coursePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //修改课程信息 if (e.getSource() == course_update) { if (p != null) { this.remove(p); } p = new Update_coursePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //删除课程信息 if (e.getSource() == course_delete) { if (p != null) { this.remove(p); } p = new Delete_coursePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //成绩添加 if (e.getSource() == grade_add) { if (p != null) { this.remove(p); } p = new Add_gradePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //成绩修改 if (e.getSource() == grade_update) { if (p != null) { this.remove(p); } p = new Update_gradePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按学号查询 if (e.getSource() == select_no) { if (p != null) { this.remove(p); } p = new Select_studentnoPanel1(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按分院查询 if (e.getSource() == select_college) { if (p != null) { this.remove(p); } p = new Select_studentcollegePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按专业查询 if (e.getSource() == select_major) { if (p != null) { this.remove(p); } p = new Select_studentmajorPanel1(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按课程名称查询 if (e.getSource() == select_cname) { if (p != null) { this.remove(p); } p = new Select_coursecnamePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按任课教师查询 if (e.getSource() == select_cteacher) { if (p != null) { this.remove(p); } p = new Select_coursecteacherPanel1(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按学生姓名查询 if (e.getSource() == select_name) { if (p != null) { this.remove(p); } p = new Select_studentnamePanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //按性别查询 if (e.getSource() == select_sex) { if (p != null) { this.remove(p); } p = new Select_studentsexPanel(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } //查询所有科目成绩 if (e.getSource() == select_allgrade) { if (p != null) { this.remove(p); } p = new Select_gradestudentPanel1(); this.getContentPane().add(p, java.awt.BorderLayout.CENTER); this.setVisible(true); } } }
类3:Add_coursePanel
package cvit.com.view; import cvit.com.manager.CourseManager; import cvit.com.model.Course; import javax.swing.JPanel; import java.awt.Color; import javax.swing.JLabel; import java.awt.Rectangle; import javax.swing.JButton; import javax.swing.JTextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; import cvit.com.manager.CourseManager; //添加课程 public class Add_coursePanel extends JPanel { public Add_coursePanel() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); this.setBackground(new Color(168, 233, 216)); btn_add.setBounds(new Rectangle(37, 182, 81, 23)); btn_add.setText("添加"); btn_add.addActionListener(new Add_coursePanel_btn_add_actionAdapter(this)); btn_null.setBounds(new Rectangle(153, 182, 81, 23)); btn_null.setText("清空"); btn_null.addActionListener(new Add_coursePanel_btn_null_actionAdapter(this)); btn_exit.setBounds(new Rectangle(267, 182, 81, 23)); btn_exit.setText("退出"); btn_exit.addActionListener(new Add_coursePanel_btn_exit_actionAdapter(this)); jLabel1.setText("课程类别"); jLabel1.setBounds(new Rectangle(198, 87, 62, 15)); jLabel2.setToolTipText(""); jLabel2.setText("授课教师"); jLabel2.setBounds(new Rectangle(19, 89, 53, 15)); tctime.setBounds(new Rectangle(265, 123, 77, 20)); tcno.setBounds(new Rectangle(93, 45, 77, 20)); tteacher.setBounds(new Rectangle(91, 85, 77, 20)); jLabel3.setText("上课时间"); jLabel3.setBounds(new Rectangle(199, 124, 57, 15)); jLabel4.setText("课程编码"); jLabel4.setBounds(new Rectangle(20, 47, 65, 15)); jLabel5.setText("课程名称"); jLabel5.setBounds(new Rectangle(201, 47, 60, 15)); tcplace.setBounds(new Rectangle(93, 123, 77, 20)); tctype.setBounds(new Rectangle(265, 85, 77, 20)); tcname.setBounds(new Rectangle(264, 44, 77, 20)); jLabel6.setText("上课地点"); jLabel6.setBounds(new Rectangle(19, 124, 67, 15)); this.add(tteacher); this.add(jLabel1); this.add(tctime); this.add(tcno); this.add(jLabel3); this.add(jLabel5); this.add(tcplace); this.add(tctype); this.add(tcname); this.add(jLabel6); this.add(jLabel4); this.add(btn_null); this.add(btn_add); this.add(btn_exit); this.add(jLabel2); this.setVisible(true); //窗体可见性 this.setSize(600, 600); //设置窗体大小 } JButton btn_add = new JButton(); JButton btn_null = new JButton(); JButton btn_exit = new JButton(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextField tctime = new JTextField(); JTextField tcno = new JTextField(); JTextField tteacher = new JTextField(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JTextField tcplace = new JTextField(); JTextField tctype = new JTextField(); JTextField tcname = new JTextField(); JLabel jLabel6 = new JLabel(); public void btn_add_actionPerformed(ActionEvent e) { String cno=""; //定义空的学生信息属性 String cname = ""; String cteacher = ""; String ctype = ""; String cplace = ""; String ctime = ""; if (!tcno.getText().equals("")) { cno=tcno.getText(); //获得课程名称文本框中的内容 } else { JOptionPane.showMessageDialog(this, "课程编码不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tcname.getText().equals("")) { cname = tcname.getText(); } else { JOptionPane.showMessageDialog(this, "课程名称不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tteacher.getText().equals("")) { cteacher = tteacher.getText(); } else { JOptionPane.showMessageDialog(this, "授课教师不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tctype.getText().equals("")) { ctype = tctype.getText(); } else { JOptionPane.showMessageDialog(this, "课程类别不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tcplace.getText().equals("")) { cplace = tcplace.getText(); } else { JOptionPane.showMessageDialog(this, "上课地点不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tctime.getText().equals("")) { ctime = tctime.getText(); } else { JOptionPane.showMessageDialog(this, "上课时间不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } Course c=new Course(); //定义课程信息并对信息封装 c.setCno(cno); c.setCname(cname); c.setCteacher(cteacher); c.setCtype(ctype); c.setCplace(cplace); c.setCtime(ctime); CourseManager cm = new CourseManager(); int i=cm.addCourse(c); //调用添加课程信息方法 if (i > 0) { JOptionPane.showMessageDialog(this, "添加成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE); tcno.setText(""); //清空文本框内容 tcname.setText(""); tctype.setText(""); tcplace.setText(""); tteacher.setText(""); tctime.setText(""); } else { JOptionPane.showMessageDialog(this, "添加失败!", "提示信息", JOptionPane.ERROR_MESSAGE); } } public void btn_null_actionPerformed(ActionEvent e) { tcno.setText(""); //清空文本框内容 tcname.setText(""); tteacher.setText(""); tctype.setText(""); tcplace.setText(""); tctime.setText(""); } //退出按钮关闭当前页面 public void btn_exit_actionPerformed(ActionEvent e) { this.setVisible(false); } } class Add_coursePanel_btn_exit_actionAdapter implements ActionListener { private Add_coursePanel adaptee; Add_coursePanel_btn_exit_actionAdapter(Add_coursePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_exit_actionPerformed(e); } } class Add_coursePanel_btn_null_actionAdapter implements ActionListener { private Add_coursePanel adaptee; Add_coursePanel_btn_null_actionAdapter(Add_coursePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_null_actionPerformed(e); } } class Add_coursePanel_btn_add_actionAdapter implements ActionListener { private Add_coursePanel adaptee; Add_coursePanel_btn_add_actionAdapter(Add_coursePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_add_actionPerformed(e); } }
类4:Add_gradePanel
package cvit.com.view; import javax.swing.JPanel; import java.awt.Color; import javax.swing.JLabel; import java.awt.Rectangle; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JTextField; import cvit.com.manager.CourseManager; import cvit.com.manager.StudentManager; import java.util.Vector; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import cvit.com.model.Course; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import cvit.com.model.Grade; import javax.swing.JOptionPane; import cvit.com.manager.GradeManager; //添加分数 public class Add_gradePanel extends JPanel { public Add_gradePanel() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); this.setBackground(new Color(168, 233, 216)); jLabel1.setText("学号"); jLabel1.setBounds(new Rectangle(30, 22, 42, 15)); jLabel2.setText("姓名"); jLabel2.setBounds(new Rectangle(200, 20, 42, 15)); jLabel3.setText("课程名称"); jLabel3.setBounds(new Rectangle(23, 76, 55, 15)); jLabel4.setText("课程编码"); jLabel4.setBounds(new Rectangle(201, 74, 57, 15)); jLabel5.setText("授课教师"); jLabel5.setBounds(new Rectangle(15, 129, 61, 15)); jLabel6.setText("成绩"); jLabel6.setBounds(new Rectangle(202, 129, 42, 15)); btn_add.setBounds(new Rectangle(76, 176, 81, 23)); btn_add.setText("增加"); btn_add.addActionListener(new addcjPanel1_btn_add_actionAdapter(this)); btn_exit.setBounds(new Rectangle(233, 175, 81, 23)); btn_exit.setText("退出"); btn_exit.addActionListener(new addcjPanel1_btn_exit_actionAdapter(this)); jcb_sno.setBounds(new Rectangle(91, 17, 89, 23)); jcb_sno.addItemListener(new addcjPanel1_jcb_sno_itemAdapter(this)); jcb_cname.setBounds(new Rectangle(92, 72, 89, 23)); jcb_cname.addItemListener(new addcjPanel1_jcb_cname_itemAdapter(this)); tsname.setEnabled(false); tsname.setBounds(new Rectangle(261, 19, 77, 20)); tcno.setEnabled(false); tcno.setBounds(new Rectangle(260, 74, 77, 20)); tcteacher.setEnabled(false); tcteacher.setBounds(new Rectangle(91, 127, 77, 20)); tgrade.setBounds(new Rectangle(262, 127, 77, 20)); this.add(jLabel2); this.add(jcb_sno); this.add(tsname); this.add(jLabel1); this.add(tcno); this.add(jLabel4); this.add(jcb_cname); this.add(jLabel3); this.add(tcteacher); this.add(jLabel5); this.add(jLabel6); this.add(tgrade); this.add(btn_exit); this.add(btn_add); this.setVisible(true); this.setSize(600, 600); Vector v=sm.selectStudent(); //调用查询所有学号方法 for (int i = 0; i < v.size(); i++) { jcb_sno.addItem(v.get(i).toString()); //将数据库所有学号添加到下拉列表中 } Vector v1=cm.selectCourse(); //调用查询所有科目名称方法 for (int i = 0; i < v1.size(); i++) { jcb_cname.addItem(v1.get(i).toString()); //将数据库中所有的课程名称添加到列表中 } } JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JButton btn_add = new JButton(); JButton btn_exit = new JButton(); JComboBox jcb_sno = new JComboBox(); JComboBox jcb_cname = new JComboBox(); JTextField tsname = new JTextField(); JTextField tcno = new JTextField(); JTextField tcteacher = new JTextField(); JTextField tgrade = new JTextField(); StudentManager sm=new StudentManager(); //初始化中定义学生管理对象 CourseManager cm=new CourseManager(); //初始化中定义课程管理对象 public static void main(String[] args) {Add_gradePanel sm = new Add_gradePanel(); } public void jcb_sno_itemStateChanged(ItemEvent e) { //调用按学号查询学生信息方法 tsname.setText(sm.findOneStudent(jcb_sno.getSelectedItem().toString())); } public void jcb_cname_itemStateChanged(ItemEvent e) { //调用按课程名称查询课程信息方法 Course c = cm.findOneCourse(jcb_cname.getSelectedItem().toString()); tcno.setText(c.getCno()); tcteacher.setText(c.getCteacher()); } public void btn_exit_actionPerformed(ActionEvent e) { this.setVisible(false); } public void btn_add_actionPerformed(ActionEvent e) { String sno = (String) jcb_sno.getSelectedItem(); String cno = tcno.getText(); String grade = tgrade.getText(); Grade g = new Grade(); g.setSno(sno); g.setCno(cno); g.setGrade(grade); GradeManager gm = new GradeManager(); int i=gm.addGrade(g); //调用添加成绩方法 if (i > 0) { JOptionPane.showMessageDialog(this, "添加成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "学生与实际选课科目不符,请核对!", "提示信息", JOptionPane.ERROR_MESSAGE); } } } class addcjPanel1_btn_add_actionAdapter implements ActionListener { private Add_gradePanel adaptee; addcjPanel1_btn_add_actionAdapter(Add_gradePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_add_actionPerformed(e); } } class addcjPanel1_btn_exit_actionAdapter implements ActionListener { private Add_gradePanel adaptee; addcjPanel1_btn_exit_actionAdapter(Add_gradePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_exit_actionPerformed(e); } } class addcjPanel1_jcb_cname_itemAdapter implements ItemListener { private Add_gradePanel adaptee; addcjPanel1_jcb_cname_itemAdapter(Add_gradePanel adaptee) { this.adaptee = adaptee; } public void itemStateChanged(ItemEvent e) { adaptee.jcb_cname_itemStateChanged(e); } } class addcjPanel1_jcb_sno_itemAdapter implements ItemListener { private Add_gradePanel adaptee; addcjPanel1_jcb_sno_itemAdapter(Add_gradePanel adaptee) { this.adaptee = adaptee; } public void itemStateChanged(ItemEvent e) { adaptee.jcb_sno_itemStateChanged(e); } }
类5:Add_studentPanel
package cvit.com.view; import cvit.com.manager.StudentManager; import cvit.com.model.Student; import javax.swing.JPanel; import javax.swing.JButton; import java.awt.Rectangle; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; import javax.swing.JComboBox; //添加学生信息 public class Add_studentPanel extends JPanel { public Add_studentPanel() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); this.setSize(600, 600); this.setBackground(new Color(168, 233, 216)); this.setVisible(true); jLabel1.setText("学号"); jLabel1.setBounds(new Rectangle(15, 36, 42, 15)); jLabel2.setText("性别"); jLabel2.setBounds(new Rectangle(14, 74, 42, 15)); tsno.setBounds(new Rectangle(79, 33, 77, 20)); jLabel3.setText("姓名"); jLabel3.setBounds(new Rectangle(187, 35, 42, 15)); jLabel4.setText("民族"); jLabel4.setBounds(new Rectangle(184, 75, 42, 15)); tsname.setBounds(new Rectangle(250, 32, 77, 20)); jLabel5.setText("出生日期"); jLabel5.setBounds(new Rectangle(5, 112, 67, 15)); jLabel6.setText("入学时间"); jLabel6.setBounds(new Rectangle(185, 112, 57, 15)); tsbirth.setBounds(new Rectangle(79, 111, 77, 20)); tstime.setBounds(new Rectangle(251, 111, 77, 20)); jLabel7.setText("学院"); jLabel7.setBounds(new Rectangle(15, 154, 42, 15)); tscollege.setBounds(new Rectangle(79, 153, 77, 20)); jLabel8.setText("专业"); jLabel8.setBounds(new Rectangle(188, 154, 42, 15)); tsmajor.setBounds(new Rectangle(251, 156, 77, 20)); jLabel9.setText("籍贯"); jLabel9.setBounds(new Rectangle(16, 197, 42, 15)); tsplace.setBounds(new Rectangle(77, 198, 251, 20)); btn1.setBounds(new Rectangle(35, 247, 81, 23)); btn1.setText("添加"); btn1.addActionListener(new Add_studentPanel_btn1_actionAdapter(this)); btn2.setBounds(new Rectangle(151, 247, 81, 23)); btn2.setText("清空"); btn2.addActionListener(new Add_studentPanel_btn2_actionAdapter(this)); btn3.setBounds(new Rectangle(265, 247, 81, 23)); btn3.setText("退出"); btn3.addActionListener(new Add_studentPanel_btn3_actionAdapter(this)); jcb_sex.setBounds(new Rectangle(77, 66, 43, 23)); jcb_ethnix.setBounds(new Rectangle(253, 66, 58, 23)); this.add(tsno); this.add(jLabel3); this.add(tsname); this.add(btn1); this.add(btn2); this.add(jLabel5); this.add(jLabel1); this.add(tscollege); this.add(tsbirth); this.add(tstime); this.add(jLabel6); this.add(jLabel4); this.add(jLabel2); this.add(jLabel7); this.add(jLabel8); this.add(tsmajor); this.add(jLabel9); this.add(tsplace); this.add(btn3); this.add(jcb_ethnix); this.add(jcb_sex); jcb_sex.addItem("男"); //向性别的列表中添加内容 jcb_sex.addItem("女"); jcb_ethnix.addItem("汉族"); //向民族的列表中添加内容 jcb_ethnix.addItem("蒙族"); jcb_ethnix.addItem("回族"); jcb_ethnix.addItem("满族"); } JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextField tsno = new JTextField(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JTextField tsname = new JTextField(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JTextField tsbirth = new JTextField(); JTextField tstime = new JTextField(); JLabel jLabel7 = new JLabel(); JTextField tscollege = new JTextField(); JLabel jLabel8 = new JLabel(); JTextField tsmajor = new JTextField(); JLabel jLabel9 = new JLabel(); JTextField tsplace = new JTextField(); JButton btn1 = new JButton(); JButton btn2 = new JButton(); JButton btn3 = new JButton(); JComboBox jcb_sex = new JComboBox(); JComboBox jcb_ethnix = new JComboBox(); public void btn1_actionPerformed(ActionEvent actionEvent) { //定义空的学生信息属性 String sno = ""; String sname = ""; String ssex = ""; String sbirth = ""; String syear = ""; String shome = ""; String smajor = ""; String scollege = ""; if (!tsno.getText().equals("")) { sno = tsno.getText(); } else { //弹出对话框信息 JOptionPane.showMessageDialog(this, "学号不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tsname.getText().equals("")) { sname = tsname.getText(); } else { JOptionPane.showMessageDialog(this, "姓名不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tsbirth.getText().equals("")) { sbirth = tsbirth.getText(); } else { JOptionPane.showMessageDialog(this, "出生日期不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tstime.getText().equals("")) { syear = tstime.getText(); } else { JOptionPane.showMessageDialog(this, "入学时间不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tscollege.getText().equals("")) { scollege = tscollege.getText(); } else { JOptionPane.showMessageDialog(this, "学院不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tsmajor.getText().equals("")) { smajor = tsmajor.getText(); } else { JOptionPane.showMessageDialog(this, "专业不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } if (!tsplace.getText().equals("")) { shome = tsplace.getText(); } else { JOptionPane.showMessageDialog(this, "籍贯不能为空!", "提示信息", JOptionPane.ERROR_MESSAGE); return; } ssex=jcb_sex.getSelectedItem().toString(); //获得列表中选定的性别信息 String sethnix=jcb_ethnix.getSelectedItem().toString(); //获得民族列表总选到的信息 Student s=new Student(); //定义学生对象s进行封装学生信息 s.setSno(sno); s.setSname(sname); s.setSsex(ssex); s.setSethnix(sethnix); s.setShome(shome); s.setSyear(syear); s.setSmajor(smajor); s.setScollege(scollege); s.setSbirth(sbirth); StudentManager sm=new StudentManager(); //定义学生管理对象sm int i=sm.addStudent(s); //调用添加学生信息方法 if (i > 0) { JOptionPane.showMessageDialog(this, "添加成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE); tsno.setText(""); tsname.setText(""); tsplace.setText(""); tstime.setText(""); tsmajor.setText(""); tscollege.setText(""); tsbirth.setText(""); } else { JOptionPane.showMessageDialog(this, "添加失败!", "提示信息", JOptionPane.ERROR_MESSAGE); } } //退出按钮关闭当前页面 public void btn3_actionPerformed(ActionEvent e) { this.setVisible(false); } //清空按钮清空各文本框中的内容 public void btn2_actionPerformed(ActionEvent e) { tsno.setText(""); tsname.setText(""); tsplace.setText(""); tstime.setText(""); tsmajor.setText(""); tscollege.setText(""); tsbirth.setText(""); } } //监听 class Add_studentPanel_btn2_actionAdapter implements ActionListener { private Add_studentPanel adaptee; //编码时双击添加按钮自动生成代码 Add_studentPanel_btn2_actionAdapter(Add_studentPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn2_actionPerformed(e); } } class Add_studentPanel_btn3_actionAdapter implements ActionListener { private Add_studentPanel adaptee; Add_studentPanel_btn3_actionAdapter(Add_studentPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn3_actionPerformed(e); } } class Add_studentPanel_btn1_actionAdapter implements ActionListener { private Add_studentPanel adaptee; Add_studentPanel_btn1_actionAdapter(Add_studentPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent actionEvent) { adaptee.btn1_actionPerformed(actionEvent); } }
类6:Delete_CoursePanel
package cvit.com.view; import cvit.com.manager.CourseManager; import javax.swing.JPanel; import java.awt.Color; import javax.swing.JTextField; import java.awt.Rectangle; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; //删除科目 public class Delete_coursePanel extends JPanel { public Delete_coursePanel() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); this.setBackground(new Color(168, 233, 216)); tcno.setBounds(new Rectangle(78, 76, 130, 20)); jLabel1.setText("课程编号"); jLabel1.setBounds(new Rectangle(8, 81, 66, 15)); btn_delete.setBounds(new Rectangle(228, 72, 71, 23)); btn_delete.setText("删除"); btn_delete.addActionListener(new Delete_coursePanel_btn_delete_actionAdapter(this)); btn_exit.setBounds(new Rectangle(320, 72, 69, 23)); btn_exit.setText("退出"); btn_exit.addActionListener(new Delete_coursePanel_btn_exit_actionAdapter(this)); this.add(tcno); this.add(jLabel1); this.add(btn_delete); this.add(btn_exit); this.setVisible(true); //可见性 this.setSize(600, 600); //窗体大小 } JTextField tcno = new JTextField(); JLabel jLabel1 = new JLabel(); JButton btn_delete = new JButton(); JButton btn_exit = new JButton(); public void btn_delete_actionPerformed(ActionEvent e) { String cno=tcno.getText(); //获得课程编码 CourseManager cm = new CourseManager(); int ok = JOptionPane.showConfirmDialog(this, "是否删除" + tcno.getText() + "课程?", "提示信息", JOptionPane.OK_CANCEL_OPTION); if (ok == JOptionPane.OK_OPTION) { int i=cm.deleteCourse(cno); //调用删除课程信息方法 if (i > 0) { JOptionPane.showMessageDialog(this, "删除成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "你要删除的课程不存在!", "提示信息", JOptionPane.ERROR_MESSAGE); tcno.setText(""); } tcno.setText(""); } } public void btn_exit_actionPerformed(ActionEvent e) { this.setVisible(false); } class Delete_coursePanel_btn_delete_actionAdapter implements ActionListener { private Delete_coursePanel adaptee; Delete_coursePanel_btn_delete_actionAdapter(Delete_coursePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_delete_actionPerformed(e); } } } class Delete_coursePanel_btn_exit_actionAdapter implements ActionListener { private Delete_coursePanel adaptee; Delete_coursePanel_btn_exit_actionAdapter(Delete_coursePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_exit_actionPerformed(e); } }
类7:Delete_studentPanel
package cvit.com.view; import cvit.com.manager.StudentManager; import javax.swing.JPanel; import java.awt.Color; import javax.swing.JTextField; import java.awt.Rectangle; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; //删除学生信息 public class Delete_studentPanel extends JPanel { public Delete_studentPanel() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); this.setBackground(new Color(168, 233, 216)); tsno.setBounds(new Rectangle(78, 76, 130, 20)); jLabel1.setText("学号"); jLabel1.setBounds(new Rectangle(32, 81, 42, 15)); btn_delete.setBounds(new Rectangle(235, 76, 81, 23)); btn_delete.setText("删除"); btn_delete.addActionListener(new Delete_studentPanel_btn_delete_actionAdapter(this)); btn_exit.setBounds(new Rectangle(233, 111, 81, 23)); btn_exit.setText("退出"); btn_exit.addActionListener(new Delete_studentPanel_btn_exit_actionAdapter(this)); this.add(tsno); this.add(jLabel1); this.add(btn_delete); this.add(btn_exit); this.setVisible(true); //可见性 this.setSize(600, 600); //窗体大小 } JTextField tsno = new JTextField(); JLabel jLabel1 = new JLabel(); JButton btn_delete = new JButton(); JButton btn_exit = new JButton(); public void btn_delete_actionPerformed(ActionEvent e) { String sno=tsno.getText(); //获得学号文本框中的学号 StudentManager sm=new StudentManager(); //定义学生管理对象sm int ok = JOptionPane.showConfirmDialog(this, "是否删除" + tsno.getText() + "同学? ", "提示信息", JOptionPane.OK_CANCEL_OPTION); if (ok == JOptionPane.OK_OPTION) { int i=sm.deleteUser(sno); //调用删除学生方法 if (i > 0) { JOptionPane.showMessageDialog(this, "删除成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "你要删除的同学不存在!", "提示信息", JOptionPane.ERROR_MESSAGE); } tsno.setText(""); } } //退出按钮关闭页面 public void btn_exit_actionPerformed(ActionEvent e) { this.setVisible(false); } } class Delete_studentPanel_btn_exit_actionAdapter implements ActionListener { private Delete_studentPanel adaptee; Delete_studentPanel_btn_exit_actionAdapter(Delete_studentPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_exit_actionPerformed(e); } } class Delete_studentPanel_btn_delete_actionAdapter implements ActionListener { private Delete_studentPanel adaptee; Delete_studentPanel_btn_delete_actionAdapter(Delete_studentPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_delete_actionPerformed(e); } }
类8:Select_coursecnamePanel
package cvit.com.view; import javax.swing.JPanel; import java.awt.Color; import javax.swing.JLabel; import java.awt.Rectangle; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import cvit.com.manager.CourseManager; import cvit.com.model.Course; import javax.swing.JComboBox; import java.util.Vector; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; //根据课程名称查询 public class Select_coursecnamePanel extends JPanel { public Select_coursecnamePanel() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); this.setBackground(new Color(168, 233, 216)); jLabel1.setToolTipText(""); jLabel1.setText("授课教师"); jLabel1.setBounds(new Rectangle(18, 86, 53, 15)); jLabel2.setText("课程类别"); jLabel2.setBounds(new Rectangle(198, 87, 62, 15)); tctime.setEnabled(false); tctime.setBounds(new Rectangle(265, 123, 77, 20)); tcno.setEnabled(false); tcno.setBounds(new Rectangle(266, 40, 77, 20)); tcteacher.setEnabled(false); tcteacher.setBounds(new Rectangle(91, 85, 93, 20)); jLabel3.setText("课程名称"); jLabel3.setBounds(new Rectangle(20, 45, 60, 15)); jLabel4.setText("课程编码"); jLabel4.setBounds(new Rectangle(193, 42, 65, 15)); jLabel5.setText("上课时间"); jLabel5.setBounds(new Rectangle(199, 124, 57, 15)); tctype.setEnabled(false); tctype.setBounds(new Rectangle(265, 85, 77, 20)); tcplace.setEnabled(false); tcplace.setBounds(new Rectangle(93, 123, 90, 20)); jLabel6.setText("上课地点"); jLabel6.setBounds(new Rectangle(19, 124, 67, 15)); btn_exit.setBounds(new Rectangle(22, 172, 81, 23)); btn_exit.setText("退出"); btn_exit.addActionListener(new Select_coursePanel_btn_exit_actionAdapter(this)); jcb_cname.setBounds(new Rectangle(89, 41, 97, 23)); jcb_cname.addItemListener(new Select_coursecnamePanel_jcb_cname_itemAdapter(this)); this.add(jLabel2); this.add(tctime); this.add(tcteacher); this.add(jLabel5); this.add(tctype); this.add(tcplace); this.add(jLabel6); this.add(tcno); this.add(jLabel4); this.add(jLabel3); this.add(jLabel1); this.add(jcb_cname); this.add(btn_exit); Vector v1=cm.selectCourse(); //调用查询所有课程名称方法 for (int i = 0; i < v1.size();i++) { jcb_cname.addItem(v1.get(i).toString()); //将查询结果添加到下拉列表中 } this.setVisible(true); this.setSize(600, 600); } JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextField tctime = new JTextField(); JTextField tcno = new JTextField(); JTextField tcteacher = new JTextField(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JTextField tctype = new JTextField(); JTextField tcplace = new JTextField(); JLabel jLabel6 = new JLabel(); JButton btn_exit = new JButton(); JComboBox jcb_cname = new JComboBox(); CourseManager cm = new CourseManager(); public void btn_exit_actionPerformed(ActionEvent e) { this.setVisible(false); } public void jcb_cname_itemStateChanged(ItemEvent e) { //调用按课程名称查询课程信息 Course c = cm.findOneCourse(jcb_cname.getSelectedItem().toString()); tcno.setText(c.getCno()); tcteacher.setText(c.getCteacher()); tcplace.setText(c.getCplace()); tctype.setText(c.getCtype()); tcplace.setText(c.getCplace()); tctime.setText(c.getCtime()); } } class Select_coursecnamePanel_jcb_cname_itemAdapter implements ItemListener { private Select_coursecnamePanel adaptee; Select_coursecnamePanel_jcb_cname_itemAdapter(Select_coursecnamePanel adaptee) { this.adaptee = adaptee; } public void itemStateChanged(ItemEvent e) { adaptee.jcb_cname_itemStateChanged(e); } } class Select_coursePanel_btn_exit_actionAdapter implements ActionListener { private Select_coursecnamePanel adaptee; Select_coursePanel_btn_exit_actionAdapter(Select_coursecnamePanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_exit_actionPerformed(e); } }
view包一共19个类。
本篇介绍了1至8类,由于博客字数限制,后半部分代码放到下篇。
下篇从第9个类开始,介绍9至19类:
下篇:学生选课与成绩管理系统2(剩余代码)
四、运行
连接好数据库之后,在view包下的StuviewFrame右键点击运行。通过IDEA的图形界面,进行增删改查等操作。
以增加学生信息为例:
1:增加学生信息
2:在IDEA中的数据库表中验证,确实添加成功。
3:回到mysql数据库中的student表中验证,也确实添加成功了。
经过多次测试,表明此程序运行成功!