Java 使用 JDBC 查询学生信息并打印
使用 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());
}
代码说明:
System.out.println('请输入姓氏:');- 提示用户输入姓氏。String lastName = sc.next();- 从用户输入中获取姓氏并存储到lastName变量中。List list3 = JDBC.findStudentByLastName(lastName);- 调用JDBC.findStudentByLastName()方法,该方法使用lastName作为参数查询数据库中姓氏相同的学生信息,并将结果存储到list3变量中。System.out.println('学号 姓名 班级 年龄 性别');- 打印表格标题。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();
}
}
}
原文地址: https://www.cveoy.top/t/topic/nH3H 著作权归作者所有。请勿转载和采集!