Seraphinux
“Lloramos por el lamento de un pájaro pero no por la sangre de un pez, benditos aquellos que tienen voz.”
June 1st, 2008
Visitada: 846 veces, 12 en este dia.

SQLite con Java

En este post mostraremos como conectar SQLite con java, usando para esto Netbeans; el resultado final es un JTextArea que mostrara el contenido de la base de datos creada en SQLite. El resultado es el siguiente:

Antes que nada vamos a la pagina de SQLiteJDBC y nos descargamos Driver para SQLite pero la version realizada en java (Pure Java), como podran notar hay versiones para Windows, Linux y MacOS las cuales se basan en la libreria JNI, a grandes rasgos esta libreria utiliza llamadas al sistema anfitrion; por tanto si quieres que tu aplicacion se ejecute en cualquier sistema operativo sin ningun problema entonces la version realizada en java (pure java) es la mejor opcion.

Una vez que descargamos el archivo (sqlitejdbc-v048-nested.tgz) lo descomprimimos, esto nos generara dos archivos un JAR y un README de toda la vida, el archivo que nos interesa obviamente es el JAR, pero de momento no lo muevas, solo recuerda en donde se encuentra.

Lo siguiente que haremos es crear la base de datos que mostrara nuestra aplicaciion, para ello usaremos una extencion de firefox llamada SQLite Manager, utilizamos esta misma extencion en un tutorial anterior (SQLite con C# para el Framework 2.0 de .NET), asi que el procedimiento es el mismo:

Vamos a crear un DB simple, con la tipica estructura de la lista del salon de clases:

  • id_alumno
  • nombre
  • ap_paterno
  • ap_materno

En nuestro SQLite Manager le damos en New Database y le damos por nombre alumnos (automaticamente SQLite Manager le agrega la extencion .sqlite), nos pregunta en donde queremos guardarla, de momento la guardamos en nuestro Escritorio. Una vez creada la DB, le damos al boton Create Table y en la ventana le damos un nombre a nuestra tabla (lista en nuestro caso), ademas de que definimos las columnas.

Una vez hecho esto ya debes de tener tu base de datos (alumnos.sqlite) creada con una tabla(lista). Vamos a agregarle tres valores para que estos sean los que se muestren en nuestro JTextArea, para eso vamos a la pestaña Browse > Search y le damos al boton Add New Record; recuerda agregar 3 registros (en mi caso, si quieres agrega mas).

Cerramos el SQLite Manager y hasta este momento contamos con una base de datos en SQLite y la libreria (Driver) que nos permitira conectarnos a ella. Es momento entonces de abrir nuestro Netbeans, en mi caso es la version 6.1

Creamos un nuevo proyecto (File > New Project…) y seleccionamos una Java Aplication

Le ponemos un nombre “interesante” y revisamos que la opcion “Create Main Class” no este seleccionada. Por ultimo le damos finalizar

Con esto tendremos creado nuestro proyecto, el siguiente paso es agregar la libreria para SQLite, en nuestr caso es un .JAR, para esto en la carpeta Libraries que aparece en la seccion Projects damos un click-derecho y seleccionamos la opcion Add JAR/Folder nos aparecera una ventana que nos permitira seleccionar el archivo .JAR que previamente habiamos descargado.

Una vez hecho lo anterior en nuestra carpeta Libraries aparecera nuestro archivo .JAR

Lo siguiente es crear la interfaz grafica de nuestr aplicacion, para ello damos click-derecho sobre el arbol de nuestro proyecto y seleccionamos ( New > JFrame Form…)

En la siguiente ventana le damos un nombre “interesante” y en el campo “Package” le ponemos “my.nombreinteresante” (obviamente es el nombre que le hayas puesto)

Esto nos creara el Frame que contendra nuestra aplicacion, ahora rapidamente en el menu “Palette” que nos acaba de aparecer, seleccionamos un elemento “Panel” lo arrastramos sobre nuestro JFrame y lo acomodamos para que ocupe todo el espacio, posteriormente seleccionamos un elemento TextArea el cual mostrara los datos de nuestra base de datos y lo arrastramos dentro del elemento “Panel”, finalmente debe de quedarte algo asi:

Ahora pasaremos a lo interesante, pasaremos al codigo, para ellos le damos click al boton que dice Source y pasaremos al codigo de la aplicacion.

Como puedes ver hay codigo que Netbeans crea automaticamente, este codigo es el necesario para mostrar la aplicacion que hasta este momento hemos venido creando, esa porcion de codigo como te repito la crea Netbeans y de momento no nos meteremos con ella. Pero si es necesario agregar codigo para que nuestra hermosa aplicacion se conecte con la base de datos, por tanto pasemos a eso. Importamos los paquetes necesarios para nuestra aplicación:

Una vez hecho esto buscamos el comienzo de nuestro probrama, o mejor dicho en donde comienza la clase que define a nuestro programa, una vez encontrada definimos variables que hagan referencia al controlador de base de datos y a la base de datos que usaremos. Ademas de variables para la conexion y para las instrucciones SQL.

Ahora pasemos al “contructor” de nuestra aplicacion, en donde pondremos toda la funcionalidad, como se puede apreciar comienza con una llamada a la funcion initComponents(); la cual se encarga de crear y acomodar los elementos de nuestra interfaz grafica, la funcionalidad la agregaremos despues de esta llamada. El codigo es el siguiente:


try{
  Class.forName(ControladorJDBC);
  conexion = DriverManager.getConnection(baseDatos);
  instruccion = conexion.createStatement();
  ResultSet resultados = instruccion.executeQuery("select * from lista");
  StringBuffer res = new StringBuffer();

  ResultSetMetaData metaDatos = resultados.getMetaData();
  int numeroColumnas = metaDatos.getColumnCount();

  for(int i = 1; i <= numeroColumnas; i++)
    res.append(metaDatos.getColumnName(i) + "\t");

  res.append("\n");

  while(resultados.next()){
    for(int i = 1; i <= numeroColumnas; i++)
      res.append(resultados.getObject(i) + "\t");

    res.append("\n");
  }
  jTextArea1.append(res.toString());
}catch(SQLException excepcionSql){
  JOptionPane.showMessageDialog(null, excepcionSql.getMessage(),
    "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
  System.exit(1);
}catch(ClassNotFoundException claseNoEncontrada){
  JOptionPane.showMessageDialog(null, claseNoEncontrada.getMessage(),
    "No se encontro el controlador", JOptionPane.ERROR_MESSAGE);
  System.exit(1);
}finally{
  try{
    instruccion.close();
    conexion.close();
  }catch(SQLException excepcionSQL){
    JOptionPane.showMessageDialog(null, excepcionSQL.getMessage(),
      "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
    System.exit(1);
  }
}

Con esto, nuestra aplicación esta concluida, ahora solo nos queda agregar la base de datos creada a la carpeta del proyecto, debe de quedarte algo asi:

Finalmente presionamos F6 y veemos como corre radiante. Oviamente este ejemplo puede mejorarse y mucho, seria deseable que en lugar de usar un JTextArea se usara una JTable, pero esto sera en otro post. Recuerden dudas, comentarios, errores, sugerencias, etc. en los comentarios :D

Posts Relacionados

3 Respuestas to “SQLite con Java”

  1. Como usar SQLite con Java y Netbeans…

    Si buscas como usar SQLite en tus proyectos con Java, este articulo te muestra paso a paso como hacerlo usando Netbeans, con imagenes y todo. El resultado es un JTextArea que muestra el contenido de la base de datos creada en SQLite….

  2. [...] a parar, de eso me encargo yo. Por cierto tengo un pequeño tutorial para usar SQLite con C# y SQLite con Java en ambientes Windows (de momento). Asi que espera pronto mas documentacion y si tu tienes algun [...]

  3. Muy bueno el tutorial, podrías colgar los fuentes? :)

Dejanos un comentario.