学生成绩管理系统
使用java swing 和 jdbc 技术 管理学生信息
一,总体架构
一共五个包
二、controller层的编写
包含select及update两个核心类的编写,以后的按钮绑定的事件会使用其中的函数。
select类如下
package Controller;
import POJO.Student;
import POJO.StudentCourse;
import POJO.inputStudentInfo;
import Utils.DbConnection;
import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class Select {
// 查询执行行数
public int userloginSelect(String sql) {
ResultSet resultSet = DbConnection.query(sql);
int a = 0;
try {
while (resultSet.next()) {
a = resultSet.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return a;
}
//查询全部的学生
public Object[][] selectStudentAll(){
String sql = "SELECT * FROM student ";
System.out.println(sql);
Connection conn = DbConnection.getConnection();
PreparedStatement stmt = null;
ResultSet rs = null;
ArrayList<Student> list = new ArrayList<Student>();
try {
stmt = (PreparedStatement) conn.prepareStatement(sql);
rs = stmt.executeQuery();
while (rs.next()) {
Student student = new Student();
student.setID(rs.getInt(1));
student.setName(rs.getString(2));
student.setSex(rs.getString(3));
student.setDateOfBirth(rs.getString(4));
student.setStudentID(rs.getString(5));
list.add(student);
}
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
try {
DbConnection.colse(rs, stmt, conn);
} catch (Exception e) {
e.printStackTrace();
}
}
Object[][] objects = new Object[list.size()][5];
for (int i = 0; i < list.size(); i++) {
objects[i][0] = list.get(i).getID();
objects[i][1] = list.get(i).getName();
objects[i][2] = list.get(i).getSex();
objects[i][3] = list.get(i).getDateOfBirth();
objects[i][4] = list.get(i).getStudentID();
}
return objects;
}
//根据姓名查询学生信息
public Object[][] selectStudentByName(String name){
String sql = "SELECT * FROM student where name = '"+name+"'";
Connection conn = DbConnection.getConnection();
PreparedStatement stmt = null;
ResultSet rs = null;
ArrayList<Student> list = new ArrayList<Student>();
try {
stmt = (PreparedStatement) conn.prepareStatement(sql);
rs = stmt.executeQuery();
while (rs.next()) {
Student student = new Student();
student.setID(rs.getInt(1));
student.setName(rs.getString(2));
student.setSex(rs.getString(3));
student.setDateOfBirth(rs.getString(4));
student.setStudentID(rs.getString(5));
list.add(student);
}
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
try {
DbConnection.colse(rs, stmt, conn);
} catch (Exception e) {
e.printStackTrace();
}
}
Object[][] objects = new Object[list.size()][5];
for (int i = 0; i < list.size(); i++) {
objects[i][0] = list.get(i).getID();
objects[i][1] = list.get(i).getName();
objects[i][2] = list.get(i).getSex();
objects[i][3] = list.get(i).getDateOfBirth();
objects[i][4] = list.get(i).getStudentID();
}
return objects;
}
//查询全部的学生对应的成绩
public Object[][] selectStudentCourseAll(){
String sql = "SELECT * FROM studentcourse ";
System.out.println(sql);
Connection conn = DbConnection.getConnection();
PreparedStatement stmt = null;
ResultSet rs = null;
ArrayList<StudentCourse> list = new ArrayList<>();
try {
stmt = (PreparedStatement) conn.prepareStatement(sql);
rs = stmt.executeQuery();
while (rs.next()) {
StudentCourse student = new StudentCourse();
student.setId(rs.getInt(1));
student.setStudentName(rs.getString(2));
student.setCourseName(rs.getString(3));
student.