如何使用 Java 获取存储在 ArrayList 中的对象的属性

Pre*_*epa 2 java arraylist

我想打印存储在 ArrayList 对象中的所有学生对象的属性(姓名、主题、注册号)。

从数据库获取学生详细信息并将其插入到学生对象中。然后将这些学生对象插入到ArrayList中。

最后我想一一打印这些学生对象属性,如下所示。 问题总结 以下是我的代码。

DBconn.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBconn {

    static Connection conn;

    public static Connection getConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            try {
                conn = DriverManager.getConnection("jdbc:mysql://localhost/student_database", "root", "");
            } catch (SQLException ex) {

            }
        } catch (ClassNotFoundException ex) {

        }
        return conn;
    }

}
Run Code Online (Sandbox Code Playgroud)

学生.java

public class Student {

    private String name;
    private String RegistrationNo;
    private String course;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRegistrationNo() {
        return RegistrationNo;
    }

    public void setRegistrationNo(String RegistrationNo) {
        this.RegistrationNo = RegistrationNo;
    }

    public String getCourse() {
        return course;
    }

    public void setCourse(String course) {
        this.course = course;
    }

}
Run Code Online (Sandbox Code Playgroud)

学生列表.java

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class StudentList {

    public static ArrayList getStudentList() {
        ArrayList list = new ArrayList();

        String sql = "SELECT * FROM student";

        try {
            Statement stm = DBconn.getConnection().createStatement();
            ResultSet rs = stm.executeQuery(sql);

            while (rs.next()) {
                Student student = new Student();

                student.setName(rs.getString(1));
                student.setCourse(rs.getString(2));
                student.setRegistrationNo(rs.getString(3));

                list.add(student);
            }

        } catch (SQLException ex) {

        }
        return list;
    }

}
Run Code Online (Sandbox Code Playgroud)

ViewStudent.java

public class ViewStudent {

    public static void main(String[] args) {

        int size = StudentList.getStudentList().size();
        for (int i = 0; i < size; i++) {
            System.out.println(StudentList.getStudentList().get(i));
      //I want to get all student's name,subject and registrationNo 

        }

    }

}
Run Code Online (Sandbox Code Playgroud)

谢谢。

Hov*_*els 5

只需给 Student 一个public String toString()方法重写,该方法返回一个包含所有关键属性的字符串,然后就可以正常工作:

System.out.println(StudentList.getStudentList().get(i));
Run Code Online (Sandbox Code Playgroud)