Cargando



Desarrollando aplicaciones con SQLite y Java


SQLite es un recurso o librería escrita en lenguaje C que implementa un motor de base de datos.
Algunas ventajas:

- Tamaño: ocupa poco espacio, cerca de 500Kb
- Portabilidad: es multiplataforma y no necesita configuración
- Es muy estable ya que cumple con ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad)


jul 03 2013 00:33
jul 03 2013 00:36
SQLite es muy utilizado por Adobe, Apple, McAfee, Skype, Firefox entre otros y además debido a su tamaño se incluye en Android, BlackBerry, Windows Phone 8, Google Chrome

SQLite puede descargarse desde www.sqlite.org para administrar la base de datos podemos utilizar Sqliteman o sqlitestudio o también phpLiteAdmin que es similar a phpmyadmin para Mysql.

Creamos un ejemplo con SQLiteman una base de datos Empleados.db y una tabla empleado,

sqlite_java.jpg


Podemos añadir datos mediante consultas sql INSERT


sqlite_java_2.jpg


Luego para poder conectarnos a la base de datos necesitamos un driver, existen para varios lenguajes pyton, .net, java, c++, php lo trae incluido. Como en este ejemplo utilizaremos Java descargamos el driver actual sqlite-jdbc-3.7.2.jar desde https://bitbucket.or...jdbc/downloads.

A continuación el código java completo, creamos un fichero que se denomine sqlitetest.java

package sqlitetest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;

public class Sqlitetest {

	 public static void main(String[] args)
		 // TODO code application logic here
		 throws Exception {
	 Class.forName("org.sqlite.JDBC");

	 String dburl = "jdbc:sqlite:/home/test/sqlitetest/Empleados.db";
	 Connection conexion = DriverManager.getConnection(dburl);

	 Statement Consulta = conexion.createStatement();
	 ResultSet rs = Consulta.executeQuery("SELECT * FROM Empleado");
		
	 DefaultTableModel modelo = new DefaultTableModel();
		 JTable tabla = new JTable(modelo);
		
	 //creo 3 columnas con sus etiquetas
	 //estas son las columnas del JTable
		 modelo.addColumn("CODIGO");
		 modelo.addColumn("NOMBRE");
		 modelo.addColumn("DOMICILIO");
		
		 while(rs.next()){
		 Object [] datos=new Object[4];//Crea un vector
		 //para almacenar los valores del ResultSet
	 	 datos[0]=(rs.getInt(1));
		 datos[1]=(rs.getString(2));
		 datos[2]=(rs.getString(3));
		 System.out.println(rs.getString(2));
		
		 //añado el modelo a la tabla
		 modelo.addRow(datos);
	 // datos=null;//limpia los datos de el vector de la memoria
		 }		
		 rs.close(); //Cierra el ResultSet

	 JFrame f = new JFrame();
	 f.setBounds(10, 10, 300, 200);
	 f.getContentPane().add(new JScrollPane(tabla));
	 f.setVisible(true);
}
}

También un vistazo de como se ve en Netbeans y los recursos que utilizamos


sqlite_java_3.jpg


El resultado de ejecutar este programa genera un Jframe y un jTable al cual le asignamos un resultado Resultset de una consulta SQL.


sqlite_java_4.jpg


Aspecto importantes SQLite solo se puede instanciar una vez es decir si ejecutamos nuestro programa y también tratamos de utilizar Sqliteman, pues solo podrá dar de alta y modificar el software que haya solicitado primero la conexión, los demás podrán consultar.

Esto deja en manos del programador cerrar la conexión cada vez que se realiza una consulta para que otro usuario pueda conectarse.

Otra operación que podemos realizar es dar de alta datos, Para ello debemos añadir los componentes para ingresar datos, en este caso un textbox por cada campo y un boton para el evento grabar datos.


sqlite_java_5.jpg


Dentro del botón programaremos el evento Grabar

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
	 // TODO code application logic here
	 try {
		 Class.forName("org.sqlite.JDBC");

		 String dburl = "jdbc:sqlite:/home/test/sqlitetest/Empleados.db";
		 Connection conexion = DriverManager.getConnection(dburl);


		 String id = idtxt.getText();
		 String nombre = nombretxt.getText();
		 String domicilio = domicilio.getText();
		
		 Statement Consulta = conexion.createStatement();
		 Consulta.executeUpdate("INSERT INTO Empleado " + "VALUES (11, txtid 'Mr.', 'Springfield', 2001)");
		
		 conexion.close();
	 }

Recordar siempre al final de cada transacción cerrar la conexión con la base de datos ya que estara en modo bloqueado.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X