繁体   English   中英

如何从 MySQL 表中获取值并设置到 arraylist 的 class 的 arraylist 中?

[英]How can I get the values from a MySQL table and set into an arraylist of a class that I've created in java?

我有两节课。 一种叫做Alumne ,另一种叫做Aula 在 class 校友中,我有一个名为aulaAlumne的属性(它的类型是 Aula),它有助于连接这两个类。 这些是两个类的构造函数:

Class 奥拉:

public class Aula {
    
    int pis;
    String porta;
    int capacitat;
    String SSID;
    String passwdSSID;

    public Aula(int pis, String porta, int capacitat, String SSID, String passwdSSID) {
        this.pis = pis;
        this.porta = porta;
        this.capacitat = capacitat;
        this.SSID = SSID;
        this.passwdSSID = passwdSSID;
    }

Class 校友:

public class Alumne {
    
    String dni;
    String nom;
    String email;
    String telefon;
    LocalDate dataNeixement;
    Aula aulaAlumne;

    public Alumne(String dni, String nom, String email, String telefon, LocalDate dataNeixement) {
        this.dni = dni;
        this.nom = nom;
        this.email = email;
        this.telefon = telefon;
        this.dataNeixement = dataNeixement;
    }

    public Alumne(String dni, String nom, String email, String telefon, LocalDate dataNeixement, Aula aulaAlumne) {
        this.dni = dni;
        this.nom = nom;
        this.email = email;
        this.telefon = telefon;
        this.dataNeixement = dataNeixement;
        this.aulaAlumne = aulaAlumne;
    }

我需要为它们创建一个数组列表,但是当我尝试创建 Alumnes 列表时,我不知道如何将结果集用于 MySQL 中的 alumne 表中的信息。 我在另一个表 aulesalumnes中有两个外键,称为aules_pisaules_porta

表校友: 在此处输入图像描述

表aules:

在此处输入图像描述

所以我尝试用这种方法获取校友信息,但不知道如何从最后两列(外键)获取结果集,因为我需要在构造函数中放入一个Aula object 来创建Alumne object 最后创建 Alumne 的 arraylist。

public ArrayList<Alumne> getAlumnes() throws AplicacioException {
    ArrayList<Alumne> ret = new ArrayList<>();
    try {
        Statement sentencia;
        sentencia = conn.getConnection().createStatement();
        sentencia.executeQuery("SELECT * FROM alumnes");
    ResultSet rs = sentencia.getResultSet();
    while (rs.next()) {
        ret.add(new Alumne(rs.getString("dniEstudiant"), rs.getString("nom"), rs.getString("email"), rs.getString("telefon"), rs.getDate("dataNeixement").toLocalDate()));
    }
    } catch (SQLException ex) {
        throw new AplicacioException("Ha ocurrido un error al cargar los datos del alumno");
    }
    return ret;
}

修改您的 SQL 查询以连接两个表

SELECT al.*, au.*
FROM alumnes al
INNER JOIN aula au
ON al.aules_pis = au.pis
AND al.aules_porta = au.porta;

然后在while循环中

ret.add(new Alumne(rs.getString("dniEstudiant"), rs.getString("nom"), rs.getString("email"), rs.getString("telefon"), rs.getDate("dataNeixement").toLocalDate(), new Aula(rs.getString("pis"), rs.getString("porta"), rs.getString("capacitat"), rs.getString("ssidwifi"), , rs.getString("dauwifi"))));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM