post icon

Leer datos de una base de datos con java

Hace tiempo vimos como ejecutar un procedimiento almacenado desde Java en una base de datos, en esta oportunidad veremos algo semejante, cargaremos datos de la base de datos a nuestra aplicación con JDBC mediando un ResultSet. Este ejemplo nos servirá para cargar nuestros formularios ya sea de escritorio, consola o web mismo si no usamos ningún framework que nos ayude.

Para este caso en sí la conexión a la BD la hacemos a Firebird, pero es funcional con cualquier otro motor siempre y cuando cambiemos la cadena de conexión y el driver JDBC.

Con ésta clase creamos la conexión:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package conexionDB;
 
import java.sql.Connection;
 
public class ConexionFirebird {
 
	public static Connection con_firebird;
 
	public static Connection conectar(String pURL, String pUser, String pPass) throws Exception {
		try {
			String databaseURL = "jdbc:firebirdsql:" + pURL;
			Class.forName("org.firebirdsql.jdbc.FBDriver");
			con_firebird = java.sql.DriverManager.getConnection(databaseURL, pUser, pPass);
			//System.out.println("Conexión a Firebird Correcta..");
		} catch (Exception e) {
			e.printStackTrace();
			throw new Exception(e);
		}
		return con_firebird;
	}
 
}//end class

Y con ésta hacemos la lectura (desde un procedimiento almacenado, aunque puede ser cualquier query también, pero no sería recomendable).

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
26
27
28
29
30
31
32
import conexionDB.ConexionFirebird;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
public static void MiMetodo() throws Exception {
	// instancio conexion de firebird
	Connection connFB = ConexionFirebird.conectar();
	connFB.setAutoCommit(false);
	try {
		// preparo el string de la consulta
		String strSQL = "SELECT * FROM MI_PROCEDEMIENTO_ALMACENADO_O_TABLA";
		// preparo el comando de ejecucion de solo lectura, y hacia adelante
		PreparedStatement psFB = connFB.prepareStatement(strSQL,
				ResultSet.TYPE_SCROLL_INSENSITIVE,
				ResultSet.CONCUR_READ_ONLY);
		// ejecuto y cargo en un ResultSet
		ResultSet rs = psFB.executeQuery();
                // commit
                connFB.commit();
		// leemos e imprimimos los datos del resultset
		while (rs.next()) {
			System.out.println(rs.getString("COLUMNA1") + " "
				+ rs.getInt("COLUMNA2") + " " + rs.getDate("COLUMNA3")); }
	} catch (Exception ex) {
                connFB.rollback();
		throw ex;
	} finally {
		connFB.close();
	}
}

Comentarios desde Facebook:

  1. avatar
    Carlos Andres Restrepo Leon COLOMBIA Mozilla Firefox Windows
    17 Octubre 2010 at 23:36 #

    muy bueno, no se porque nadie mas opina

    sos groso sabelo

    Saludos desde colombia

Responder