如何从 MySQL table 中获取值并设置到我在 java 中创建的 class 的数组列表中?
How can I get the values from a MySQL table and set into an arraylist of a class that I've created in java?
我有两个 class。一个叫 Alumne,另一个叫 Aula。在 class 校友中,我有一个名为 aulaAlumne 的属性(它的类型是 Aula),它有助于连接这两个 classes。
这些是 classes:
的构造函数
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;
}
我需要为他们两个创建一个数组列表,但是当我尝试创建校友列表时,我不知道如何使用结果集来获取校友 table 中的信息MySQL。
我在 table alumnes 中有两个外键来自另一个 table aules 调用 aules_pis, aules_porta:
Table 校友:
Table 歌声:
所以我想用这个方法获取alumnes信息,但是我不知道如何从最后两列(外键)中获取结果集), 因为我需要在构造函数中放入一个Aula对象来创建Alumne对象,最后创建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"))));
我有两个 class。一个叫 Alumne,另一个叫 Aula。在 class 校友中,我有一个名为 aulaAlumne 的属性(它的类型是 Aula),它有助于连接这两个 classes。 这些是 classes:
的构造函数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;
}
我需要为他们两个创建一个数组列表,但是当我尝试创建校友列表时,我不知道如何使用结果集来获取校友 table 中的信息MySQL。 我在 table alumnes 中有两个外键来自另一个 table aules 调用 aules_pis, aules_porta:
Table 校友:
Table 歌声:
所以我想用这个方法获取alumnes信息,但是我不知道如何从最后两列(外键)中获取结果集), 因为我需要在构造函数中放入一个Aula对象来创建Alumne对象,最后创建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"))));