package com.trifulcas.DAO; public class City { private int city_id; private int country_id; private Country country; private String city; public City(int city_id, int country_id, String city) { super(); this.city_id = city_id; this.country_id = country_id; this.city = city; } public int getCity_id() { return city_id; } public void setCity_id(int city_id) { this.city_id = city_id; } public int getCountry_id() { return country_id; } public void setCountry_id(int country_id) { this.country_id = country_id; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public Country getCountry() { return country; } public void setCountry(Country country) { this.country = country; } @Override public String toString() { return "City [city_id=" + city_id + ", country_id=" + country_id + ", country=" + country + ", city=" + city + "]"; } }
package com.trifulcas.DAO; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; // En esta clase vamos a implementar la lógica del CRUD // Desde aquí accederemos a la base de datos public class CityDAO { // Tenemos una variable para almacenar la conexión private Connection con; private PreparedStatement st; private ResultSet rs; private CountryDAO countryDAO; public CityDAO() { this("sakila"); } public CityDAO(String bd) { try { // Nos conectamos en el constructor, la variable con estará disponible // para todas las funciones de la clase DAO Class.forName("com.mysql.cj.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + bd, "root", ""); countryDAO=new CountryDAO(); } catch (Exception ex) { System.out.println(ex.getMessage()); } } public void close() { try { con.close(); st.close(); rs.close(); } catch (SQLException e) { e.printStackTrace(); } } // cRud // Obtengo un pais por el ID public City getCity(int id) { try { // Lo hago igual que hasta ahora, SQL, STATEMENT, RESULTSET String sql = "select * from city where city_id=?"; st = con.prepareStatement(sql); st.setInt(1, id); rs = st.executeQuery(); // Si hay resultado construyo un país con los datos que me devuelve la consulta if (rs.next()) { City ciudad= new City(rs.getInt("city_id"),rs.getInt("country_id"), rs.getString("city")); Country pais=countryDAO.getCountry(ciudad.getCountry_id()); ciudad.setCountry(pais); return ciudad; } } catch (Exception ex) { System.out.println(ex.getMessage()); } return null; } }
package com.trifulcas.DAO; public class TestCiy { public static void main(String[] args) { CityDAO cityDAO=new CityDAO(); City ciudad=cityDAO.getCity(1); System.out.println(ciudad); } }