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:

SQLite es realmente versátil. Se trata de una base de datos, una biblioteca de programación, una herramienta de línea de comandos, así como tambien de una excelente herramienta de aprendizaje que ofrece una buena introducción a las bases de datos relacionales. De hecho, existen muchas maneras de utilizarlo: en entornos embebidos, sitios web, como apoyo a servicios del sistema operativo, en scripts, y en diversas aplicaciones.
Para los programadores, SQLite es como la cinta adhesiva pero digital, ya que proporciona una manera fácil de unir aplicaciones con datos. Y al igual que la cinta adhesiva, sus usos no tienen fin. En un entorno web, SQLite puede ayudar en la administración de la información generada por las sesiones. En lugar de serializar (unir) todos los datos de la sesión en un gran "blob", cada uno de estos elementos pueden ser seleccionado de una manera mas especifica y puestos por escrito al inicio de cada sesion en una base de datos.
SQLite también sirve como herramienta en el desarrollo y pruebas en bases de datos relacionales ya que: no es necesario un Gestor de Base de Datos externo, o la creación o configuracion de alguna red, o molestos nombres de usuario y contraseñas. SQLite también podría servir como una especie de cache, que mantenga los datos de la configuración, o incluso debido a su compatibilidad binaria entre plataformas podria trabajar como un formato de archivo para alguna aplicacion.
Además de funcionar como un recipiente de almacenamiento, SQLite puede funcionar como una herramienta para el procesamiento de datos en general. Dependiendo del tamaño y complejidad, puede ser más fácil para algunas aplicaciónes representar sus estructuras de datos como si fueran una tabla o tablas en un base de datos en memoria. De esta manera, es posible operar en los datos de manera relacional, usando SQLite para hacer todo el trabajo en lugar de tener que escribir algoritmos propios para manipular y ordenar las estructuras de datos. Si se es programador, es facil imaginar cuánto código llevaria implementar la siguiente sentencia SQL en un programa:
Si se esta familiarizado con SQL, imagina codificar el equivalente de una subquery, una query compuesta, una clausula GROUP BY o uno de los multiples JOIN's. SQLite puede incluir toda esta funcionalidad en los programas y con un costo mínimo. Con un motor de base de datos integrado directamente en el código, es posible empezar a pensar en SQL como un lenguaje para la resolucion de complejos algoritmos de clasificación. Este enfoque se hace más atractivo conforme el tamaño del conjunto de datos crece o conforme los algoritmos se hacen más complejos. Lo que es más, SQLite puede ser configurado para utilizar una cantidad fija de memoria RAM y si se supera el limite especificado descargar los datos en disco duro.
Esto es difícil de hacer si es que se escriben algoritmos propios. Con SQLite, este límite se reduce a simples comandos SQL. SQLite es también una gran herramienta de aprendizaje para los programadores que estudian ciencias de la computación. Aplicado en generadores de Parsers (Analizadores), tokenizadores, máquinas virtuales, Algoritmos Arbol-B, cacheo, programas de arquitectura, y muchos más, es un fantastico vehículo para la exploración de muchos conceptos bien establecidos en las ciencias de la computación. Su modularidad, su pequeño tamaño, y su simplicidad hacen que sea más fácil de estudiar cada tema como si fuera un caso aislado que cualquier persona puede seguir fácilmente.
Posts Relacionados
SQLite es una base de datos embebida, por lo cual en lugar de funcionar como un proceso independiente, este opera de manera simbiótica dentro de la aplicación. Lo que quiere decir que su código está entrelazado, o incrustado como parte del programa que lo alberga.
Una de las ventajas de tener un servidor de bases de datos embebido es que no es obligatorio configurar la red o su administración. Ambos cliente y servidor correr juntos en el mismo proceso. Esto reduce los gastos relacionados con la red en cuestion de llamadas, simplifica la administración de la bases de datos, y hace que sea más fácil desplegar la aplicación.
Observa los procesos mostrados en la siguiente figura. Uno de ellos es un script en Perl, otro es un programa en C/C++, y el otro es un proceso de Apache con PHP, todos utilizando SQLite.

El script en Perl importa el modulo DBI::SQLite, que a su vez está relacionado con la API en C de SQLite, incluida en la librería de SQLite. La libreria en PHP funciona de manera similar, de igual forma la aplicacion en C++.
En última instancia, los tres procesos estan interactuando con la API en C de SQLite. Por otra parte, aunque cada proceso representa un servidor independiente, aún pueden operar sobre el/los archivo(s) de una misma base de datos, ya que SQLite utiliza el sistema operativo para llevar a cabo las operaciones de sincronización y el bloqueo.
Hoy en día existen en el mercado una gran variedad de bases de datos relacionales diseñadas específicamente para su uso de manera embebida, como por ejemplo:
Otros lo que han hecho es modificar bases de datos existentes para crear variantes que funcionen de manera embebida. Algunos ejemplos de estos incluyen:
Las bases de datos MySQL y Firebird ofrecen tambien versiones de este tipo. Pero de todos estos productos, sólo dos son de código abierto y libre: Firebird y SQLite. Y de estos dos restantes, sólo uno ha sido diseñado exclusivamente para su uso como una base de datos embebida: SQLite.
Posts Relacionados
... o lo que es lo mismo "no le dejes el trabajo de un hombre a un niño".
Algo que he podido apreciar en las presentaciones de algunos (muchos) proyectos de titulacion es que en materia de base de datos terminan usando MySQL, Oracle o en el peor de los casos Access, y ok voy de acuerdo en usar MySQL u Oracle cuando se trata de algo en red y cuando vas a trabajar con muchos pero muuuchos datos y no para hacer una aplicacion del tipo "Agendita Mi Alegria".
Cuando la cantidad de datos es poca y no es atraves de una red terminan usando Access, lo cual es todavia peor, entonces la pregunta es: ¿Por que poner aun niño a hacer el trabajo de un hombre? o mejor dicho ¿por que usar Access en lugar de SQLite? (en el caso de que usen Oracle o MySQL les diria: "¿Por que matar una mosca a cañonazos?"
).
Uno de los motivos que yo veo es el desconocimiento, la verdad es que no hay mucha información que digamos sobre SQLite y la que hay esta en ingles. Asi que os parece si revertimos esto
Hagamos un pequeño intro a SQLite {mas que otra cosa es un prefacio}
SQLite es una base de datos relacional de fuente abierta. Que originalmente vio la luz en el año 2000. SQLite cuenta con una reputación de ser muy portable, fácil de usar, compacta, eficiente y fiable. Muy similar al conocido Access del mundo Windows pero a diferencia de este posee una serie de ventajas.
Para comenzar es multiplataforma y cumple con la mayoria de los estándares SQL92 por lo que su sintaxis y forma de uso casi no posee curva de aprendizaje si es que conoces SQL y/o has trabajado con MySQL. Es ideal para trabajar con volúmenes medianos o pequeños de información, de manera ágil y eficiente. Aunque sus diseñadores aseguran que es posible manejar bases de datos de hasta 2 TeraBytes sin mayores inconvenientes. Cuando un MySQL queda grande la solución ideal de código abierto, libre y gratuito es SQLite.
Como puedes ver vale la pena usar SQLite y creeme que por documentacion no vamos 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 ejemplo o tutorial y quisieras compartirlo no dudes en comunicarte conmigo.
Posts RelacionadosEn este post mostrare como hacerlo paso a paso, ademas de que mostraremos como crear una aplicacion que muestre la DB en un dataGrid.
[Primero]
Vamos a la pagina del proyecto System.Data.SQLite y nos descargamos un ejecutable que nos instalara las DLL's necesarias.


Una vez que nos descargamos el ejecutable procedemos a instalarlo (dejamos los valores por default) y marcamos la casilla en la ventana que nos mostrara al final de la instalacion:
(more...)