使用 Java 和 JDBC 查询并打印学生信息

以下代码示例展示了如何使用 Java 和 JDBC 查询数据库中姓氏相同的学生信息,并将其打印到控制台。

System.out.println('请输入姓氏:');
String lastName = sc.next();
List list3 = JDBC.findStudentByLastName(lastName);
System.out.println('学号	姓名	班级	年龄	性别');
for (Object s : list3) {
    Student student = (Student) s;
    System.out.println(student.getSno() + '	' + student.getSname() + '	' + student.GetClass() + '	' + student.getAge() + '	' + student.getSex());
}

代码说明:

  1. System.out.println('请输入姓氏:'); - 提示用户输入姓氏。
  2. String lastName = sc.next(); - 从用户输入中获取姓氏并存储到 lastName 变量中。
  3. List list3 = JDBC.findStudentByLastName(lastName); - 调用 JDBC.findStudentByLastName() 方法,该方法使用 lastName 作为参数查询数据库中姓氏相同的学生信息,并将结果存储到 list3 变量中。
  4. System.out.println('学号 姓名 班级 年龄 性别'); - 打印表格标题。
  5. for (Object s : list3) { ... } - 遍历 list3 中的每个元素,并进行以下操作:
    • Student student = (Student) s; - 将每个元素强制转换为 Student 类型。
    • System.out.println(student.getSno() + ' ' + student.getSname() + ' ' + student.GetClass() + ' ' + student.getAge() + ' ' + student.getSex()); - 打印学生信息,包括学号、姓名、班级、年龄和性别。

注意:

  • 这段代码假设 JDBC 类中已经定义了 findStudentByLastName() 方法,该方法用于查询数据库中姓氏相同的学生信息。
  • 代码中的 Student 类应该包含 getSno()getSname()GetClass()getAge()getSex() 方法,用于获取学生信息。
  • 代码中使用 字符来控制输出的格式,以确保学生信息以表格形式展示。

代码优化:

  • 可以使用 try-with-resources 语句来确保数据库连接在使用完后自动关闭。
  • 可以使用占位符来避免 SQL 注入攻击。
  • 可以将代码封装成一个方法,以便于重复使用。

示例代码:

import java.sql.*;
import java.util.List;

public class StudentQuery {

    public static void main(String[] args) {

        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/student";
        String user = "root";
        String password = "password";

        try (Connection connection = DriverManager.getConnection(url, user, password)) {

            // 输入姓氏
            System.out.println('请输入姓氏:');
            Scanner sc = new Scanner(System.in);
            String lastName = sc.next();

            // 查询学生信息
            PreparedStatement statement = connection.prepareStatement("SELECT * FROM student WHERE lastName = ?");
            statement.setString(1, lastName);
            ResultSet resultSet = statement.executeQuery();

            // 打印学生信息
            System.out.println('学号	姓名	班级	年龄	性别');
            while (resultSet.next()) {
                int sno = resultSet.getInt("sno");
                String sname = resultSet.getString("sname");
                String className = resultSet.getString("className");
                int age = resultSet.getInt("age");
                String sex = resultSet.getString("sex");
                System.out.println(sno + '	' + sname + '	' + className + '	' + age + '	' + sex);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
Java 使用 JDBC 查询学生信息并打印

原文地址: https://www.cveoy.top/t/topic/nH3H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录