Archivos Mensuales: enero 2013

Mini Entrada: JDBC Parte 2 – JDBC en la práctica

Si bien ya hablamos de algunas de las características que consideramos más destacables de JDBC, ahora es momento de que expliquemos como está dividido un programa  java con JDBC, es decir, poner todo en la práctica.  Los pasos para que un programa de este tipo se comunique con la base de datos son:

  1. Cargar el driver necesario para comprender el protocolo que usa la base de datos concreta
  2. Establecer una conexión con la base de datos
  3. Enviar consultas SQL y procesar el resultado
  4. Liberar los recursos al terminar
  5. Manejar los errores que se puedan producir

A continuación veremos algo más de código.

 

Paso 1: Carga del Controlador (Driver)

Antes de poder conectarse a la base de datos es necesario cargar el driver JDBC. Sólo hay que hacerlo una vez al comienzo de la aplicación.

loadDriver

carga del driver

El nombre del driver debe venir especificado en la documentación de la base de datos. Se puede elevar la excepción ClassNotFoundException si hay un error en el nombre del driver o si el fichero .jar no está correctamente configurado en el CLASSPATH o en el proyecto.

 

Paso 2: Establecer una conexión.

Las gestores de bases de datos actúan como servidores y las aplicaciones como clientes que se comunican a través de la red. Un objeto Connection representa una conexión física entre el cliente y el servidor. Para crear una conexión se usa la clase DriverManager y se especifica la URL, el nombre y la contraseña, como se muestra abajo:

url

El formato de la URL debe especificarse en el manual de la base de datos. Ejemplo de MySQL:

url

Donde el host es el equipo o nombre del servidor donde este la base de datos, el puerto utilizado por MySQL es el 3306 y el esquema es el nombre de la base de datos.

 

3.- Ejecutar una sentencia SQL.

Una vez que tenemos una conexión puedes ejecutar sentencias SQL. Primero se crea el objeto Statement desde la conexión y después se ejecuta la consulta y su resultado se devuelve mediante un ResultSet.

statement

Para las sentencias  actualizar, insertar y borrar en SQL, debemos utilizar statement.executeUpdate().

 

Desde JDBC 2.0 podemos utilizar otra forma para realizar las sentencias  actualizar, insertar y borrar, si requiere obtener mayor información sobre esto por favor diríjase a la segunda parte en los Anexos de este documento.

 

3.1.-Acceso al conjunto de resultados

El ResultSet es el objeto que representa el resultado. No carga toda la información en memoria, por lo que, internamente tiene un cursor que apunta a un fila concreta del resultado en la base de datos. Hay que posicionar el cursor en cada fila y obtener la información de la misma.

rs

El cursor apuntará, la primera vez que lo usemos, a la posición 0 así es que, debemos usar la función next() del ResultSet, que nos posicionara en la primera fila. Con el código de ejemplo evitamos obtener una excepción en caso de que no haya resultado alguno a nuestra sentencia.

rs1

Cuando el ResultSet se encuentra en una fila concreta se pueden usar los métodos de acceso a las columnas.

  • String getString(String columnLabel)
  • String getString(int columnIndex)
  • int getInt(String columnLabel)
  • int getInt(int columnIndex)
  • … (existen dos métodos por cada tipo)

rs2

 

Paso 4: Liberar recursos

Cuando se termina de usar una Connection, un Statement o un ResultSet es necesario liberar los recursos que necesitan. Puesto que la información de un ResultSet no se carga en memoria, existen conexiones de red abiertas. Para ello utilizamos la función Close() de cada uno, como se muestra abajo:

  • ResultSet.close() – Libera los recursos del ResultSet. Se cierran automáticamente al cerrar el Statement que lo creó o al volver a ejecutar el Statement.
  • Statement.close() – Libera los recursos del Statement.
  • Connection.close() – Finaliza la conexión con la base de datos

 

Paso 5: Manejar los errores

Hay que gestionar los errores apropiadamente ya que se pueden producir excepciones ClassNotFoundException si no se encuentra el driver y también se pueden producir excepciones SQLException al interactuar con la base de datos, por alguno de los siguientes motivos:

  • SQL mal formado
  • Conexión de red rota
  • Problemas de integridad al insertar datos (claves duplicadas)
  • Cadena de conexión con errores.

Sin embargo, es todo por ahora, la próxima semana abordaremos más a fondo este punto, y veremos algunas cadenas de conexión para algunos gestores de base de datos.

 

Anuncios
Etiquetado , , ,

Mini entrada: JDBC Parte 1

Dentro de la programación existen las API’s  (Application Programming Interface – Interfaz de Programación de Aplicaciones) que nos permiten añadir funciones y compatibilidad con otros componentes. Las más importantes son utilizadas para “conectar” o “enlazar” las bases de datos con los programas, esto proporciona a las aplicaciones de contenido dinámico. Si bien cada lenguaje tiene una propia, nosotros nos enfocaremos a la relativa a Java, osea JDBC.

Java Database Connectivity (JDBC) consiste en un conjunto de clases e interfaces escritos en Java que ofrecen un completo repertorio para la programación con bases de datos,  la primera aparición de JDBC (JDBC 1.0) se encuentra dentro del paquete java.sql que fue incorporado en la versión del JDK 1.1.x (Java Development Kit), JDBC 2.0 sigue estando en el mismo paquete pero en las versiones JDK 1.2 y JDK 1.3. Actualmente nos encontramos en la versión 4 de esta API.

Debido a que JDBC está escrito completamente en Java también posee la ventaja de ser independiente de la plataforma. No será necesario escribir un programa para cada tipo de base de datos, una misma aplicación escrita utilizando JDBC podrá manejar bases de datos Oracle, Sybase, o SQL Server, entre otros.

Las bases de datos son una parte critica de las aplicaciones java basadas en la arquitectura cliente / servidor. Una aplicación utiliza Java Database Connectivity (JDBC) para acceder a una base de datos en un Sistema Gestor de Base de Datos  (SGBD). Los temas que trataremos en entradas posteriores  son una característica de Java Standard Edition (SE) 6 y son:

  • JDBC 4.0
  • Java DB.

En esta primera entrada damos una introducción a la siguiente, en la que veremos a JDBC en la práctica.

Etiquetado , , , ,

Los números de 2012

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2012 de este blog.

Aquí hay un extracto:

600 personas llegaron a la cima del monte Everest in 2012. Este blog tiene 11.000 visitas en 2012. Si cada persona que ha llegado a la cima del monte Everest visitara este blog, se habría tardado 18 años en obtener esas visitas.

Haz click para ver el reporte completo.

Etiquetado , ,

El Año Nuevo: El Editorial del Año que se fue.

Como editorial del año, me gustaría tocar algunos temas que resaltaron y creo que se reflejaran en tendencias en el transcurso de este. El final de la era de la PC, el no tan nuevo Windows 8 y mi reciente acercamiento a iOS. Además algunos comentarios especiales sobre mí adorado lubuntu y el nokia C3.

Tratando de mentalizarme para dejar de poner el hash tag o “#” a todo, el primer tema del que hablaré es el final de la era de la PC (Computadora Personal). Para ser claros el año pasado nos demostró que las tabletas están aquí para quedarse, la pregunta es ¿reemplazarán a las PC?  Todo indica que si… pero a es un sí a medias o mentiroso.

El mercado que analizamos se puede componer por segmentos:

Tercer Segmento: Diseño, Video y Música (Inclusive servidores Web)

Segundo Segmento: Computación (Servicios Profesionales, Estaciones de trabajo)

Primer Segmento: Consumo Masivo (entretenimiento)

El Cuarto Segmento es el especializado o industrial, en los que la robótica y el super-computo van de la mano. Es un segmento que compra por lotes o millones de licencias. Sin embargo los primeros 3 segmentos son de los que hablaremos.

Las tabletas se han ganado poco a poco el respeto de todos, me incluyo, ya que el manipular una pantalla de 7 o 10 pulgadas, la verdad es muy cómodo. La batería es y debe ser un plus. El cual en las versiones más económicas es más raquítico. A pesar de que hay modelos que tienen el puerto micro HDMI no he visto que se usen tanto para  ver distintos contenidos en pantallas.

En los últimos 6 meses del año, se comenzó a agregarles teclados a las tabletas, con lo que las netbooks de 10 pulgadas han dejado de existir, al menos extraoficialmente, pero han dado paso a las ultrabooks, que son PCs con un poder de procesamiento superior y en la mayoría de los casos con mejores gráficos, por cierto la pantalla es de 11 a 13 pulgadas, máximo 14.

Nuestros amigos amantes de Apple se podrán disgustar un poco, ya que por fin habrá una competencia directa a la Macbook Air. En este año las ultrabooks serán la última línea de defensa para las PCs, ya que les agregaran pantallas touch. Aunque Asus amenaza con continuar con modelos de 10 pulgadas bastante accesibles, pienso que su hardware ya no es tan interesante. Las ultrabooks tendrán su año y veremos que pasara con los procesadores ya que las tabletas ya han empatado a medias, con los 4 núcleos.

Windows 8

Este sistema operativo se adapta perfecto a las ultrabooks con pantalla touch, aunque tiene cosas interesantes para escritorio, tuve oportunidad de probarlo y como usuario normal no me ha disgustado tanto, pienso que los gamers estarán más contentos en cuanto vean el desempeño, les recomiendo comprar algún ordenar con procesador AMD para que sea un poco más barato y tengan oportunidad de probarlo.

Acerca de iOS

En estas fechas me hice de un iPhone 3g, la verdad he estado encantado con este aparato que  a pesar de ser de 2010 y tener una versión de firmware 3.x, aun se defiende. Para que se den una idea el iPhone 5 tiene iOS 6, ósea que son al menos 3 versiones de diferencia y supera por mucho al Android de su época, el 2.1 – Eclair. También tuve tiempo de probar el nuevo y la pantalla se ve fantástica, sin duda, la mejor que hay para un celular.

Lubuntu

Pondré noticias recientes sobre la nueva versión que sale en abril: 13.04 y algunos post pendientes.

Sobre el Nokia C3

Me han llegado múltiples comentarios recientemente y hare una segunda parte de soporte técnico rudo para este singular celular, de la serie 40, serie 60. Espero solucionar algunas de sus dudas de desbloqueo. La verdad ténganme paciencia, que Roma no se construyo en un día.

En resumidas cuentas las ultrabooks serán la última línea de defensa de las PCs como  las conocemos, el iPhone es un producto que tiene el agregado de la usabilidad, es cómodo y agradable usarlo, en pocas palabras es lo más apegado a lo intuitivo que conozco. Tenemos que estar atentos a que pasa con nuestro lubuntu 13.04, en cuanto sepa algo se los comunicare. Publicare las entradas pendientes y eso es todo nos vemos en la próxima entrada.

Etiquetado , , ,