在这个实验中用户会通过两个练习了解如何利用 JDBC 连接和访问 Mysql 中的指 定数据库。 1. 查询 student 表中所有的数据,并在控制台显示出来,一行显示一个学生的信息。 2. 输入一个学号,如果该学号信息存在,则显示出该学号对应的学生的基本信息, 包括学号,姓名,性别,年龄等,以及该学生所选修的课程名称,成绩;若没有该学号 对应的信息存在,则输出简单的提示信息。
时间: 2023-09-30 17:02:37 浏览: 75
利用JDBC访问数据库的小实验
好的,这两个练习都需要使用 JDBC 连接到 Mysql 数据库,以下是示例代码:
1. 查询 student 表中所有的数据,并在控制台显示出来,一行显示一个学生的信息。
```java
import java.sql.*;
public class QueryAllStudents {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
String sql = "SELECT * FROM student";
try {
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
int age = rs.getInt("age");
System.out.println(id + "\t" + name + "\t" + gender + "\t" + age);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
2. 输入一个学号,如果该学号信息存在,则显示出该学号对应的学生的基本信息,包括学号,姓名,性别,年龄等,以及该学生所选修的课程名称,成绩;若没有该学号对应的信息存在,则输出简单的提示信息。
```java
import java.sql.*;
public class QueryStudentById {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
String sql = "SELECT s.id, s.name, s.gender, s.age, c.name AS course_name, sc.score " +
"FROM student s " +
"LEFT JOIN score sc ON s.id = sc.student_id " +
"LEFT JOIN course c ON sc.course_id = c.id " +
"WHERE s.id = ?";
try {
Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(args[0]));
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
int age = rs.getInt("age");
String courseName = rs.getString("course_name");
int score = rs.getInt("score");
System.out.println("学号:" + id);
System.out.println("姓名:" + name);
System.out.println("性别:" + gender);
System.out.println("年龄:" + age);
System.out.println("课程:" + courseName);
System.out.println("成绩:" + score);
} else {
System.out.println("没有找到该学生的信息。");
}
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
以上代码仅供参考,实际使用时需要替换掉相应的数据库连接信息和 SQL 语句,以适应具体的环境和需求。同时,需要注意关闭连接和释放资源,以避免资源泄漏和性能问题。
阅读全文