Vespaciano Forero Sanchez
Diego Suarez
Excelente!
Wilbren Ambiorix Rosario Serrano
Perfecto!
Estás trabajando en un programa que es catálogo de guitarras.
Dependiendo de la membresía del usuario debemos mostrar ciertas guitarras. Para usuarios premium mostrar guitarras premium. Las guitarras tienen un identificador en la base de datos que les hace pertenecer al tipo premium.
Planeando realizar una consulta en la que generes un filtro de usuarios y guitarras premium. ¿Qué elemento de JDBC deberás usar para ejecutar una consulta con filtros?
Escribe el código en la sección de comentarios.
Vespaciano Forero Sanchez
Diego Suarez
Excelente!
Wilbren Ambiorix Rosario Serrano
Perfecto!
Danner Adib Uribe
Para el reto se implementa una clase anidada con los atributos de la guitarra y se crea un método para realizar la consulta de las guitarras filtrando por el usuario y la suscripción:
Juan Carlos Barcinilla Alarcon
Muy buen ejemplo, pero en vez de colocar createStatements ubieces colocado preparedStatement.
Ejemplo: final query=" select g.* from guitarra g where g.tipo_suscription=? and g.usuario=?" PreparedStatement ps=dbCon.preparedStatement(query); ps.setString(usuario); ps.setString(tipoSuscripcion);
Jose David Garzon
private void conexionBaseDatos(){
try { Connection cn = DriverManager.getConnection ("jdbc:mysql://localhost/nombreBD", "usuario", 'passwors'); PreparedStatement pst = cn.preparedStatement ("select * from tabla where campo = ?"); pst.setString(1 , parametroRecibido.getText().trim()); resultSet = pst.executeQuery(); catch{ } }
}
Cristhian Gallo
PreparedStatement
Alex Marcelino Silva Eneque
Preparedstatement, executeQuery y ResultSet
Cristian Gastelbondo
preparedStatement, executeQuery
Brayan durango
Daniel Julián Gómez Silva
Usaría executeQuery o execute depende y tuviera que hacer un JOIN o no en la consulta.Por supuesto el preparedStatement con la consulta adecuada, y el resultset de la guitarras. El filtro sería tener el tipo de usuario del usuario en sesión y ponerlo como filtro en la consulta a las guitarras en el where.
Monica Garcia
String sqlString = "Select * FROM Guitarras WHERE usuarios LIKE 'Premium'"; Result rs = stmt.executeQuery(sqlString);
---> Prepared Statement ---> Execute Query --->Result Set
Laura Sofía Córdoba
Los elementos JDBC que se deben usar para ejecutar la consulta preparedStatement permite realiza la consulta que permite recibir parametros en el where resultSet permite obtener los registros y tratarlo como objetos
Jesús Flor Farias
De acuerdo a la clase anterior debe ser con ** PrepareStatement, executeQuery** para ejecutar la consulta y **Resultset ** para almacenar los registros que cumplen con la sentencia dada.
Kevin Manuel Wong
Buen día comunidad. Se podria utilizar PreparedStatement para preprarar la consulta y el metodo executeQuery para ejecutar la consulta.
Adrian Huamani Ccallo
PrepareStatement y Execute Query
Eder Hernández Hernández
String querySQL = "SELECT * FROM Guitarras g WHERE g.Type=?";
try(PreparedStatement stmt = cnnSQL.prepareStatement(querySQL)) {
stmt.setInt(1, idTipo);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
//More sentences
}
}
Fernando Alberto Morales Reyes
yo lo hice así:
// 1. Definir la consulta con un parámetro (?)
String sql = "SELECT * FROM guitarras WHERE es_premium = ? AND categoria_id = ?";
try (PreparedStatement pstmt = conexion.prepareStatement(sql)) {
// 2. Sustituir los filtros dinámicamente
pstmt.setBoolean(1, true); // Filtro para guitarras premium
pstmt.setInt(2, idCategoria); // Filtro opcional por ID
// 3. Ejecutar y obtener resultados
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
// Procesar el catálogo...
}
}
Carlos Naveda
executeQuery(sql)
Daniela Mendez Camacho
ExecuteQuery
Andrea Raquel Garay Leguizamón
PreparedStatement
Seria algo así:
PreparedStatement pstGuitarras; Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3304/catalogo”, "root", ""); pstGuitarras = cn.preparedStatement(“Select * from guitarra, usuario where guitarra.tipo = premium AND usuario.tipo = premium”); ResultSet rs = pstGuitarras.executeQuery(); rs.close(); cn.close();
ConnectionJDBC.java
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionJDBC { public static final String DRIVER = "com.mysql.cj.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/clients"; public static final String USER = "root"; public static final String PASSWORD = "root"; public static Connection getConnection() { Connection con = null; try{ Class.forName(DRIVER); con = DriverManager.getConnection(URL, USER, PASSWORD); }catch(ClassNotFoundException e){ System.out.println("Clase " + DRIVER + "no encontrada en el driver... " + e); }catch(SQLException e) { System.out.println("Error obteniendo conexión... " + e); } return con; } }
Guitar.java
public class Guitar { private int id; private String name; private String modality; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getModality() { return modality; } public void setModality(String modality) { this.modality = modality; } }
CRUD.java
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class CRUD { public static final String QUERY_USERS = "select modality from users where id = ?"; public static final String QUERY_GUITARS = "select * from guitars where modality = ?"; public static String getMembershipUser(int userId) { PreparedStatement st = null; ResultSet rs = null; String membership = null; try (Connection con = ConnectionJDBC.getConnection()){ st = con.prepareStatement(QUERY_USERS); st.setInt(1, userId); rs = st.executeQuery(); while (rs.next()) { membership = rs.getString("modality"); } } catch (SQLException e) { System.out.println("Ha ocurrido un error... " + e); } return membership; } public static List<Guitar> getGuitarsOfAnMembership(String membership) { PreparedStatement st = null; ResultSet rs = null; List<Guitar> guitars = new ArrayList<Guitar>(); try (Connection con = ConnectionJDBC.getConnection()){ st = con.prepareStatement(QUERY_GUITARS); st.setString(1, membership); rs = st.executeQuery(); while (rs.next()) { Guitar guitar = new Guitar(); guitar.setId(rs.getInt("id")); guitar.setName(rs.getString("name")); guitar.setModality(rs.getString("modality")); membership = rs.getString("modality"); guitars.add(guitar); } } catch (SQLException e) { System.out.println("Ha ocurrido un error... " + e); } return guitars; } }
Main.java
import java.util.List; public class Main { public static void main(String[] args) { String membership = CRUD.getMembershipUser(3); List<Guitar> guitarras = CRUD.getGuitarsOfAnMembership(membership); for (Guitar guitar : guitarras) { System.out.println("-------------"); System.out.println(guitar.getId()); System.out.println(guitar.getName()); System.out.println(guitar.getModality()); System.out.println("-------------"); } } }