使用Derby数据库或者其它数据库,在数据库中,设计一张表,包括学号、姓名、年龄、班级等信息。使用Java编程,连接该数据库,写入、读出、修改、查询学生信息。
时间: 2024-01-29 07:02:48 浏览: 22
您好!对于您的问题,我可以为您提供一个基本的实现示例。请注意,以下示例使用Derby数据库和JDBC API进行操作。
首先,您需要创建一个名为"students"的表,包括学号(id)、姓名(name)、年龄(age)和班级(class)字段。可以使用以下SQL语句创建该表:
```sql
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
class VARCHAR(50)
);
```
接下来,您可以使用Java编写一个程序来连接数据库,并实现写入、读取、修改和查询学生信息的功能。以下是一个示例代码:
```java
import java.sql.*;
public class StudentDatabase {
private static final String DB_URL = "jdbc:derby:studentDB;create=true";
private static final String DB_USER = "username";
private static final String DB_PASSWORD = "password";
public static void main(String[] args) {
try (Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
// 创建表
createTable(connection);
// 写入学生信息
insertStudent(connection, 1, "张三", 20, "Class A");
insertStudent(connection, 2, "李四", 21, "Class B");
// 查询学生信息
Student student1 = getStudent(connection, 1);
System.out.println("学号:" + student1.getId());
System.out.println("姓名:" + student1.getName());
System.out.println("年龄:" + student1.getAge());
System.out.println("班级:" + student1.getClass());
// 修改学生信息
updateStudent(connection, 2, "王五", 22, "Class C");
// 查询修改后的学生信息
Student student2 = getStudent(connection, 2);
System.out.println("学号:" + student2.getId());
System.out.println("姓名:" + student2.getName());
System.out.println("年龄:" + student2.getAge());
System.out.println("班级:" + student2.getClass());
// 删除学生信息
deleteStudent(connection, 1);
deleteStudent(connection, 2);
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void createTable(Connection connection) throws SQLException {
String sql = "CREATE TABLE students (id INT PRIMARY KEY, name VARCHAR(50), age INT, class VARCHAR(50))";
try (Statement statement = connection.createStatement()) {
statement.execute(sql);
}
}
private static void insertStudent(Connection connection, int id, String name, int age, String className) throws SQLException {
String sql = "INSERT INTO students (id, name, age, class) VALUES (?, ?, ?, ?)";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, id);
statement.setString(2, name);
statement.setInt(3, age);
statement.setString(4, className);
statement.executeUpdate();
}
}
private static Student getStudent(Connection connection, int id) throws SQLException {
String sql = "SELECT * FROM students WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, id);
try (ResultSet resultSet = statement.executeQuery()) {
if (resultSet.next()) {
int studentId = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String className = resultSet.getString("class");
return new Student(studentId, name, age, className);
}
}
}
return null;
}
private static void updateStudent(Connection connection, int id, String name, int age, String className) throws SQLException {
String sql = "UPDATE students SET name = ?, age = ?, class = ? WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, name);
statement.setInt(2, age);
statement.setString(3, className);
statement.setInt(4, id);
statement.executeUpdate();
}
}
private static void deleteStudent(Connection connection, int id) throws SQLException {
String sql = "DELETE FROM students WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, id);
statement.executeUpdate();
}
}
private static class Student {
private int id;
private String name;
private int age;
private String className;
public Student(int id, String name, int age, String className) {
this.id = id;
this.name = name;
this.age = age;
this.className = className;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getClass() {
return className;
}
}
}
```
请确保在运行代码之前,将数据库连接URL中的"username"和"password"替换为您的数据库用户名和密码。
通过运行上述代码,您可以连接数据库并执行写入、读取、修改和查询学生信息的操作。
希望这能帮助到您!如果有任何问题,请随时向我提问。