Instancia de un objeto con datos de consulta SQL
Publicado por stuard (7 intervenciones) el 19/12/2019 12:56:52
Buenas tardes!
Estoy realizando un proyecto y me veo en la situacion de que tengo que hacer una consulta a una base de datos que contiene la infirmación de las peliculas y instanciar un objeto con esos datos en la clase Film
Cuando intento instanciar los datos con el constructor de la clase Film me dice que esta indefinido. Y creo que es porque
estoy cogiendo datos con el método toString() en el caso de date, enum etc... Las opciones que veo son cambiar el tipo de
datos que pueda almacenar la base de datos en esas columnas y cambiarlo todo a VARCHAR2() pero no es lo más correcto,
espero que me puedan ayudar a entender el problema que estoy teniendo.
La clase film contiene la siguiente estructura:
Y la tabla que contiene los datos tiene los siguientes campos:
Con que método o como hago para recuperar del objeto respuesta los datos enum( clase enumerada ), flm_date_releas(date)
ya que no tengo un método definido.
Estoy realizando un proyecto y me veo en la situacion de que tengo que hacer una consulta a una base de datos que contiene la infirmación de las peliculas y instanciar un objeto con esos datos en la clase Film
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
try {
String query = "select * from film";
Connection connexion = bd.getConnection();
Statement sentencia = connexion.createStatement();
ResultSet resultado = sentencia.executeQuery(query);
if (resultado!=null) {
while resultado.next()) {
Integer id = resultado.getInt("flm_id");
String title = resultado.getString("flm_title");
String desc = resultado.getString("flm_synopsis");
String cover = resultado.getString("flm_cover");
String gen = resultado.getString(("flm_genre").toString());
String age_rating = resultado.getString("flm_age_rating");
String date_release = resultado.getString(("flm_date_release").toString());
Integer premiere = resultado.getInt("flm_premiere");
Boolean bool = (premiere == 1);
list.add(new Film( Integer.valueOf(id), title, desc, cover, gen, age_rating, date_release, bool));
}
}
sentencia.close();
connexion.close();
estoy cogiendo datos con el método toString() en el caso de date, enum etc... Las opciones que veo son cambiar el tipo de
datos que pueda almacenar la base de datos en esas columnas y cambiarlo todo a VARCHAR2() pero no es lo más correcto,
espero que me puedan ayudar a entender el problema que estoy teniendo.
La clase film contiene la siguiente estructura:
1
2
3
4
5
6
7
8
9
10
11
12
public Film(Integer id, String name, String sinopsis, String caratula, String genero, Integer edatRec,
String dateEstreno, Boolean estreno) {
super();
this.id = id;
this.name = name;
this.sinopsis = sinopsis;
this.caratula = caratula;
this.genero = genero;
this.edatRec = edatRec;
this.dateEstreno = dateEstreno;
this.estreno = estreno;
}
Y la tabla que contiene los datos tiene los siguientes campos:
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `film` (
`flm_id` int(11) NOT NULL,
`flm_title` varchar(45) NOT NULL,
`flm_synopsis` varchar(500) DEFAULT NULL,
`flm_cover` varchar(45) DEFAULT NULL,
`flm_genre` enum('FICCIO','AVENTURAS','TERROR','DIBUIJOS') DEFAULT NULL,
`flm_age_rating` int(11) DEFAULT NULL,
`flm_date_release` varchar(20) DEFAULT NULL,
`flm_premiere` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`flm_id`),
UNIQUE KEY `flm_title_UNIQUE` (`flm_title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Con que método o como hago para recuperar del objeto respuesta los datos enum( clase enumerada ), flm_date_releas(date)
ya que no tengo un método definido.
Valora esta pregunta


0