You are on page 1of 4

Programacin JDBC Simple con Sybase jConnect

Page 1 of 4

w w w . m t b a s e . c o m

Programacin JDBC Simple con Sybase jConnect


Este documento tcnico discute un programa Java muy simple que se conecta a una base de datos Sybase (ASE, SQL Anywhere/ASA, IQ) usando el controlador Sybase jConnect para JDBC. Aunque es simple, ste cdigo es requerido muy frecuentemente. Tener ste cdigo a la mano, sirve mucho como referencia. Se recomienda ms investigacin sobre JDBC y el paquete java.sql para un mejor entendimiento de la programacin JDBC, as como consultar la documentacin de Sybase jConnect para JDBC.

El Cdigo Java
El siguiente es el cdigo Java necesario para conectarse a una base de datos Sybase va Sybase jConnect para JDBC. Este ejemplo recupera un conjunto resultado que consiste de todas las filas y tres de las columnas de la tabla employee.
import java.sql.*; import java.util.Properties; public class MyConnection { public static void main( String[] args ) { try { // // // // ***************************************************************** En las siguientes lneas remueva el comentario de la lnea 'Class.forName' segn la versin de jConnect que vaya a usar: *****************************************************************

// Para usar jConnect 4.2: //Class.forName("com.sybase.jdbc.SybDriver"); // Para usar jConnect 5.2: //Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); // Para usar jConnect 6.0: //Class.forName("com.sybase.jdbc3.jdbc.SybDriver"); // ***************************************************************** // En las siguientes lneas se definen las propiedades de la // conexin. Reemplace: // <user>: Usuario en la base de datos // <passwd>: Contrasea // Puede incluir otras propiedades, como CHARSET, HOSTNAME, // APPLICATIONNAME, etc. // ***************************************************************** Properties props = new Properties(); props.put("user", "<user>"); props.put("password", "<passwd>"); // ***************************************************************** // En la siguiente lnea se define el URL (direccin) del servidor // de base de datos. Reemplace: // <host>: Direccin IP o nombre de la mquina donde corre la base de datos // <port>: Puerto del servidor de base de datos // ***************************************************************** String url = "jdbc:sybase:Tds:<host>:<port>";

http://www.mtbase.com/contenido/documento.jsp?id=10100&prt=1

11/01/2012

Programacin JDBC Simple con Sybase jConnect

Page 2 of 4

// ***************************************************************** // En la siguiente lnea se establece la conexin, usando la // direccin y propiedades previamente definidas: // ***************************************************************** Connection conn = DriverManager.getConnection(url, props); // ***************************************************************** // En las siguientes lneas se crea y ejecuta la sentencia SQL. La // ejecucin crea tambin un conjunto resultado. // ***************************************************************** Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( "SELECT emp_id, emp_name, emp_lastname FROM employee"); // ***************************************************************** // En las siguientes lneas se procesa el conjunto resultado, fila // por fila: // ***************************************************************** while ( rs.next( ) ) { System.out.println( "ID: " + rs.getString(1) + " Nombre: " + rs.getString(2) + " Apellido: " + rs.getString(3) ); } // ***************************************************************** // Finalmente, se liberan los recursos y se cierra la conexin: // ***************************************************************** rs.close(); stmt.close(); conn.close(); } catch ( Exception e ) { System.out.println( "Ocurrio un error: " ); e.printStackTrace(); } } // main } // MyConnection class

Breve Explicacin del Cdigo Java


Para poder entender cmo funciona ste cdigo, se discutirn secciones importantes del cdigo.

Seccin 1:
import java.sql.*; inmport java.util.Properties;

Estas lneas de cdigo son necesarias para tener acceso a las clases requeridas en el programa. El paquete java.sql contiene las clases Connection, Statement y ResultSet necesarias para recuperar y desplegar datos de una base de datos. La clase java.util.Properties permite definir las propiedades de la conexin.

Seccin 2:
// Para usar jConnect 4.2: //Class.forName("com.sybase.jdbc.SybDriver"); // Para usar jConnect 5.2: //Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); // Para usar jConnect 6.0: //Class.forName("com.sybase.jdbc3.jdbc.SybDriver");

Estas lneas de cdigo son usadas para cargar dinmicamente el controlador o driver Sybase jConnect para

http://www.mtbase.com/contenido/documento.jsp?id=10100&prt=1

11/01/2012

Programacin JDBC Simple con Sybase jConnect

Page 3 of 4

JDBC. Cambie los comentarios de ste cdigo de acuerdo a la versin de jConnect que se vaya a usar. Muchas veces la gente se pregunta porqu usar este cdigo y no simplemente importar los paquetes necesarios. Dependiendo de la lgica de su aplicacin, puede ser necesario conectarse a su base de datos de distintas maneras. Al cargar dinmicamente una clase con el mtodo Class.forName() se previene el tener que importar cada controlador que posiblemente vaya a ser usado. Esto es especialmente importante cuando una aplicacin va a ser configurada para conectarse a una gran variedad de bases de datos. Adicionalmente, no olvide que el CLASSPATH de su aplicacin debe contener la ubicacin del archivo jar que contiene el controlador deseado.

Seccin 3:
Properties props = new Properties(); props.put("user", "<user>"); props.put("password", "<passwd>"); String url = "jdbc:sybase:Tds:<host>:<port>";;

Aqu se definen algunas de las propiedades para la conexin, como el nombre de usuario y la contrasea; en la documentacin de jConnect se describen otras propiedades, tales como CHARSET, HOSTNAME, APPLICATIONNAME, etc. Tambin se define el URL o direccin de la base de datos a la cual nos queremos conectar. Vea ms detalles en la siguiente seccin.

Seccin 4:
Connection conn = DriverManager.getConnection(url, props);

El mtodo getConnection() se usa para encontrar un controlador de base de datos que est en correspondencia con el URL de la base de datos que se le pasa como argumento. El mtodo getConnection () usa la sintaxis del URL dado (en este caso "jdbc:sybase:Tds:<host>:<port>") para encontrar un controlador JDBC en memoria que se le pueda acomodar. En este caso, el DriverManager encontrar el controlador jConnect que hemos cargado dinmicamente. Este mtodo establecer una conexin a la base de datos especificada por el URL y las propiedades definidas antes.

Seccin 5:
Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( "SELECT emp_id, emp_name, emp_lastname FROM employee");

La conexin es usada para crear un objeto Statement que ser usado para crear una sentencia SQL esttica y obtener el conjunto resultado producido. Un objeto Statement es instanciado por primera vez usando el mtodo createStatement() de la clase Connection. El mtodo executeQuery() es llamado en seguida para retornar un objeto ResultSet el cual contiene los datos producidos por la sentencia SQL dada como parmetro.

Seccin 6:
while ( rs.next( ) ) { System.out.println( "ID: " + rs.getString(1) + " Nombre: " + rs.getString(2) + " Apellido: " + rs.getString(3) ); }

Aqu se usa el objeto ResultSet para mostrar el valor de las columnas de cada fila en la consola Java. El

http://www.mtbase.com/contenido/documento.jsp?id=10100&prt=1

11/01/2012

Programacin JDBC Simple con Sybase jConnect

Page 4 of 4

mtodo next() es usado para moverse a la siguiente fila y determinar si hay ms filas en el conjunto resultado. Con el ciclo while aseguramos que el valor de la primera columna de cada fila ser mostrado hasta que encontremos el final del conjunto resultado. Dentro del ciclo, se usa el mtodo getString() para convertir el dato a una cadena de caracteres para propsitos de nuestro reporte. El objeto ResultSet provee mtodos getXXX() similares para convertir datos recuperados de la base de datos en tipos de datos primitivos.

Seccin 7:
rs.close(); stmt.close(); conn.close();

En sta ltima parte del cdigo se lleva a cabo una limpieza, cerrando el conjunto resultado, la sentencia y la conexin.

Atributos del Documento


Resumen: Cdigo: Temas: Productos: Este documento le asistir en la programacin de cdigo Java para llevar a cabo una conexin simple a una base de datos Sybase usando el controlador Sybase jConnect para JDBC. 10100 Programacin, Configuracin ltima Modificacin: Mar 07, 2008 Tipo de Documento: Documento Tcnico Todas las Versiones Todos los Sistemas Operativos

jConnect, JDBC, Adaptive Server Versin: Enterprise, ASA, SQL Anywhere, IQ Sistema Operativo: Java, Conectividad

Plataformas: Todas las Plataformas Palabras Clave:

http://www.mtbase.com/contenido/documento.jsp?id=10100&prt=1

11/01/2012

You might also like