package com.trifulcas.country; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner; public class GetCountries { public static void main(String[] args) { // Buscar todos los países que tengan un texto determinado Scanner scanner = new Scanner(System.in); // Pido el texto System.out.println("Introduzca el texto a buscar"); String texto = scanner.nextLine(); try { // Hago lo estándar Class.forName("com.mysql.cj.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sakila", "root", ""); Statement st = con.createStatement(); // ¿QUé sql necesito? String sql = "select * from country where country like '%"+texto+"%'"; System.out.println(sql); // Aquí no modificamos sino que seleccionamos, por lo tanto usamos // executeQuery para ejecutar y un ResultSet para almacenar los resultados ResultSet rs=st.executeQuery(sql); // rs es un cursor, puntero o flecha, como lo queramos llamar // a los registros de la base de datos rs.next(); // Esto me coloca el cursor en el primer elemento System.out.println(rs.getString(2)); // Esto me imprime el nombre del primer país rs.next(); // Esto me coloca el cursor en el primer elemento System.out.println(rs.getString("country")); // Esto me imprime el nombre del segundo país // Si yo hago un bucle recorro todos los registros while(rs.next()) { System.out.println(rs.getString("country")); } st.close(); con.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } scanner.close(); } }
package com.trifulcas.country; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner; public class GetCountries { public static void main(String[] args) { // Buscar todos los países que tengan un texto determinado Scanner scanner = new Scanner(System.in); // Pido el texto System.out.println("Introduzca el texto a buscar"); String texto = scanner.nextLine(); try { // Hago lo estándar Class.forName("com.mysql.cj.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sakila", "root", ""); Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); // ¿Qué sql necesito? String sql = "select * from country where country like '%"+texto+"%'"; System.out.println(sql); // Aquí no modificamos sino que seleccionamos, por lo tanto usamos // executeQuery para ejecutar y un ResultSet para almacenar los resultados ResultSet rs=st.executeQuery(sql); // rs es un cursor, puntero o flecha, como lo queramos llamar // a los registros de la base de datos rs.next(); // Esto me coloca el cursor en el primer elemento System.out.println(rs.getString(2)); // Esto me imprime el nombre del primer país rs.next(); // Esto me coloca el cursor en el primer elemento System.out.println(rs.getString("country")); // Esto me imprime el nombre del segundo país // Si yo hago un bucle recorro todos los registros while(rs.next()) { System.out.println(rs.getString("country")); } // Al tener el tipo TYPE_SCROLL_INSENSITIVE puedo ir a registros determinados rs.first(); System.out.println(rs.getString("country")); // Esto me imprime el nombre del primer país rs.last(); System.out.println(rs.getString("country")); // Esto me imprime el nombre del último país rs.absolute(4); System.out.println(rs.getString("country")); // Esto me imprime el nombre del último país st.close(); con.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } scanner.close(); } }
Lo habitual es hacerlo así:
ResultSet rs=st.executeQuery(sql); // Si yo hago un bucle recorro todos los registros while(rs.next()) { System.out.println(rs.getString("country")); }