[英]How to get all users from a table into an array or list and print it
我必须使用 Java 和 JDBC in Eclipse IDE 创建一个应用程序,它将用户详细信息存储在 MySQL 数据库中,并且能够执行插入、删除、显示等操作。
我知道如何显示所有用户详细信息而不将其放入如下所示的 ArrayList 中:
import java.sql.*;
public class JDBC {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","root","root");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from student");
while(rs.next())
{
String name1 = rs.getString("name");
int contact1 = rs.getInt("contact");
int age1 = rs.getInt("age");
System.out.println(name1 + " " + contact1 + " " + age1);
}
st.close();
con.close();
}
}
但是,我要求将它放入数组或ArrayList后显示用户详细信息。我不知道如何将它放入数组或ArrayList然后打印。
正如Slaw已经指出的那样,创建一个 class 能够存储数据库中的一行,遍历结果集并为读取的每一行添加一个新实例到列表中。 关闭连接,遍历列表并将对象转储到标准 output。
假设您使用的是 Java 14 或更高版本,那么为此创建一个record
会更容易(基本上是一个 class,只有最终字段和吸气剂,以及编译器为您生成的所有 arguments 构造函数)。 以下代码基于您的代码,并进行了极少的更改以采用第一段中概述的想法。
import java.sql.*;
import java.util.LinkedList;
import java.util.List;
public class JDCB {
record Student(String name, int contact, int age) {
// might want to override toString() to make it prettier on console
}
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","root","root");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from student");
final List<Student> students = new LinkedList<>(); // better suited for adding elements one by one than ArrayList<>
while(rs.next()) {
students.add(new Student(
rs.getString("name"),
rs.getInt("contact"),
rs.getInt("age")
));
}
st.close();
con.close();
students.forEach(System.out::println);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.