学生管理系统java源码涉及数据库
时间: 2025-01-02 13:37:55 浏览: 6
### 学生管理系统中的数据库操作
在构建学生管理系统的Java应用程序时,通常会涉及到与关系型数据库交互的操作。为了实现这些功能,可以采用JDBC (Java Database Connectivity) 来连接并操作MySQL这样的SQL数据库[^1]。
下面是一个简单的例子来展示如何创建一个用于向`students`表中插入新记录的方法:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class StudentManager {
private static final String DB_URL = "jdbc:mysql://localhost:3306/school";
private static final String USER = "root"; // 用户名
private static final String PASS = ""; // 密码
public void addStudent(String name, int age){
try{
Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
String sql = "INSERT INTO students(name,age) VALUES(?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setInt(2,age);
pstmt.executeUpdate();
System.out.println("Record inserted.");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
```
此代码片段展示了通过PreparedStatement对象执行参数化的SQL查询语句的方式,这有助于防止SQL注入攻击,并提高了程序的安全性和效率[^1]。
对于读取数据而言,则可以通过ResultSet接口获取查询的结果集。这里给出一段从`students`表里检索所有学生的姓名和年龄的例子:
```java
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
//...
public List<Student> getAllStudents(){
List<Student> studentList = new ArrayList<>();
try(Connection conn = DriverManager.getConnection(DB_URL,USER,PASS)){
String query = "SELECT id, name, age FROM students";
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Integer id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
studentList.add(new Student(id,name,age));
}
} catch(SQLException ex){
ex.printStackTrace();
}
return studentList;
}
```
上述方法返回了一个包含所有学生信息的对象列表,其中每个元素都是一个自定义的`Student`类实例,该类封装了个别字段的数据成员以及相应的getter/setter方法[^1]。
阅读全文