使用MySql建立数据库stu,在库中建立表student,表中包含如下信息:学号,姓名,年龄,成绩。初始时为空表。要求编写一个Java程序DBdemo对表student做如下操作: 1)插入5条记录;各记录的学号,姓名,年龄,成绩分别如下: 20010203 王李 21 98.0 20010204 林秀 22 87.0 20010205 王华 20 9.0 20010206 林张 21 67.0 20010207 李白 20 57.0 2)找出成绩在70分以上的所有学生; 3)删除成绩为9分的学生 4)将年龄为21的学生的成绩加10分。
时间: 2024-02-12 19:08:03 浏览: 113
好的,以下是Java程序DBdemo的代码实现:
```java
import java.sql.*;
public class DBdemo {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1. 注册 JDBC 驱动器
Class.forName("com.mysql.jdbc.Driver");
// 2. 打开连接
System.out.println("连接到数据库...");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/stu", "root", "password");
// 3. 执行查询
System.out.println("插入5条记录...");
stmt = conn.createStatement();
String sql1 = "INSERT INTO student (id, name, age, score) VALUES (20010203, '王李', 21, 98.0)";
String sql2 = "INSERT INTO student (id, name, age, score) VALUES (20010204, '林秀', 22, 87.0)";
String sql3 = "INSERT INTO student (id, name, age, score) VALUES (20010205, '王华', 20, 9.0)";
String sql4 = "INSERT INTO student (id, name, age, score) VALUES (20010206, '林张', 21, 67.0)";
String sql5 = "INSERT INTO student (id, name, age, score) VALUES (20010207, '李白', 20, 57.0)";
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
stmt.executeUpdate(sql3);
stmt.executeUpdate(sql4);
stmt.executeUpdate(sql5);
System.out.println("找出成绩在70分以上的所有学生...");
String sql6 = "SELECT * FROM student WHERE score >= 70";
rs = stmt.executeQuery(sql6);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
double score = rs.getDouble("score");
System.out.println("学号:" + id + ",姓名:" + name + ",年龄:" + age + ",成绩:" + score);
}
System.out.println("删除成绩为9分的学生...");
String sql7 = "DELETE FROM student WHERE score = 9";
stmt.executeUpdate(sql7);
System.out.println("将年龄为21的学生的成绩加10分...");
String sql8 = "UPDATE student SET score = score + 10 WHERE age = 21";
stmt.executeUpdate(sql8);
// 4. 清理环境
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
```
注意:在代码中需要将连接数据库的URL、用户名和密码替换成自己的。
阅读全文