Resultset

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")); 			
			}	

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos