嘿,各位小伙伴,今天咱们来聊一个挺有意思的话题——用Java写一个高校教师管理系统。你可能觉得这听起来有点高大上,但其实只要你懂点Java基础,跟着我一步步来,你会发现这真的没那么难。
首先,咱们得弄清楚这个系统的功能到底要干啥。高校教师管理系统嘛,顾名思义,就是用来管理教师信息的。比如说,老师的基本信息、教学课程、科研成果、考勤记录这些,都得能查、能改、能增、能删。对吧?所以咱们得先理清楚需求,然后才能开始写代码。
那咱们先从最基础的开始,比如数据库设计。数据库是系统的核心,所有数据都要存进去。咱们可以用MySQL,或者其他的数据库,不过Java跟MySQL配合起来挺方便的。那咱们先建个表,叫teacher_info吧,里面包括教师ID、姓名、性别、出生日期、职称、所属学院、联系方式这些字段。
接下来就是Java代码了。咱们得用JDBC连接数据库,这样就能在Java程序里操作数据库了。不过别担心,虽然JDBC看起来有点复杂,但只要按步骤来,就没什么大问题。
先来看一段简单的代码,演示怎么连接数据库。你可以把它放到一个类里,比如叫DBUtil,用来封装数据库连接的方法。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/teacher_db?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "123456";
public static Connection getConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
return null;
}
}
}
这段代码的作用就是建立数据库连接。你可能会问,为什么要用Class.forName呢?这是因为JDBC驱动需要被加载进来,这样才能正确连接到数据库。不过现在有些版本的驱动已经不需要这么做了,但为了兼容性,还是加上比较好。
接下来,咱们可以写一个Teacher类,用来封装教师的信息。这个类应该有对应的属性和getter/setter方法。
public class Teacher {
private int id;
private String name;
private String gender;
private String birthDate;
private String title;
private String department;
private String contact;
// 构造方法
public Teacher(int id, String name, String gender, String birthDate, String title, String department, String contact) {
this.id = id;
this.name = name;
this.gender = gender;
this.birthDate = birthDate;
this.title = title;
this.department = department;
this.contact = contact;
}
// getter 和 setter 方法
// ...
}
这时候,咱们就可以开始写一些操作数据库的方法了。比如添加一个教师信息。
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TeacherDAO {
public boolean addTeacher(Teacher teacher) {
String sql = "INSERT INTO teacher_info (name, gender, birth_date, title, department, contact) VALUES (?, ?, ?, ?, ?, ?)";
try (Connection conn = DBUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setString(1, teacher.getName());
ps.setString(2, teacher.getGender());
ps.setString(3, teacher.getBirthDate());
ps.setString(4, teacher.getTitle());
ps.setString(5, teacher.getDepartment());
ps.setString(6, teacher.getContact());
int rows = ps.executeUpdate();
return rows > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
}
这个方法就是把Teacher对象的数据插入到数据库中。你可能会注意到,这里用了PreparedStatement,这是为了防止SQL注入,提高安全性。
接下来,咱们再写一个查询教师信息的方法。比如根据ID查询一个教师的信息。

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TeacherDAO {
public Teacher getTeacherById(int id) {
String sql = "SELECT * FROM teacher_info WHERE id = ?";
try (Connection conn = DBUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return new Teacher(
rs.getInt("id"),
rs.getString("name"),
rs.getString("gender"),
rs.getString("birth_date"),
rs.getString("title"),
rs.getString("department"),
rs.getString("contact")
);
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
这个方法返回的是一个Teacher对象,如果找不到对应的数据,就返回null。这样我们就可以在主程序里调用这个方法,看看能不能拿到正确的数据。
那咱们再写一个测试类,来验证一下这些方法是否正常工作。
public class TestTeacher {
public static void main(String[] args) {
TeacherDAO dao = new TeacherDAO();
// 添加一个教师
Teacher teacher = new Teacher(0, "张三", "男", "1980-01-01", "副教授", "计算机学院", "13800000000");
boolean result = dao.addTeacher(teacher);
System.out.println("添加结果: " + result);
// 查询教师
Teacher t = dao.getTeacherById(1);
if (t != null) {
System.out.println("教师姓名: " + t.getName());
System.out.println("性别: " + t.getGender());
System.out.println("出生日期: " + t.getBirthDate());
System.out.println("职称: " + t.getTitle());
System.out.println("学院: " + t.getDepartment());
System.out.println("联系方式: " + t.getContact());
} else {
System.out.println("未找到该教师!");
}
}
}
运行这个测试类,看看控制台输出的结果是不是符合预期。如果没问题的话,说明咱们的代码是成功的。
当然,这只是系统的一个小部分,实际开发中还需要考虑很多东西,比如用户界面、权限管理、数据验证、异常处理等等。不过对于初学者来说,先掌握这些基础内容是非常重要的。
如果你是一个刚开始学Java的新手,建议你多动手敲代码,不要怕出错。因为只有通过不断实践,你才能真正掌握这些技术。
另外,推荐你学习一些更高级的内容,比如Spring Boot、MyBatis、Servlet、JSP等,这些都能让你开发出更强大的系统。不过这些都是后话,咱们先打好基础。
最后,总结一下咱们今天讲的内容。咱们从数据库设计开始,接着写了Java连接数据库的代码,然后创建了Teacher类和TeacherDAO类,实现了添加和查询教师信息的功能。整个过程虽然有点长,但只要你一步一步来,其实也没那么难。
希望这篇文章对你有所帮助!如果你还有其他问题,欢迎随时留言交流。咱们下期再见!
