Te puede intersar
Conectado Java con SQLITE
En esta entrada mostrare como manejar bases de datos en SQLite desde nuestro programa en java. Para ello usare los programas DB Browser for sqlite para generar la base de datos y el IDE de eclipse para escribir el programa en java.
Primero creamos la siguiente base de datos que nos servirá como ejemplo:
*Nota: Puedes descargar esta base de datos AQUI, o si quieres crear tu propia tabla puedes revisar la siguiente ENTRADA
A continuación abrimos eclipse, creamos nuestro proyecto y procedemos a importar el archivo .jar de sqlite, seguimos los siguientes pasos:
1° Damos clic derecho sobre la carpeta del proyecto, seleccionamos Build Path y clic en Add externla archives
2° Seleccionamos el archivo ,jar de sqlite y en damos clic en abrir
3° Como resultado de estas acciones se debe crear una subcarpeta en nuestro proyecto llamada Referenced Libraries la cual contiene el archivo sqlite-jdbc-3.30.1.jar
Ahora comenzamos a escribir el código en java, para ello iré explicando partes del código. Primero mostraremos el codigo para conectarnos con la base de datos:
//Importamos las librerias necesarias
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
Public Connection establecerConector(){
//inicializamos un conector
Connection con = null;
//Ejecutamos el bloque try catch para intentar conectarnos con la base ded datos
try{
//Realizamos la conexion
con = (Connection)DriverManager.getConnection("jdbc:sqlite:"+path);
}catch(Exception e){
//En caso la conexion falle mostramos este mensaje de error.
JOptionPane.showMessageDialog(null, "Fallo en la conexion con la base de datos");
}
//retornamos el conector con su estado final
return con;
}
Ahora escribiremos el código que nos permitirá realizar una consulta simple a la base de datos:
public String[][] consultarProducto() {
//Establecemos la conexion
Connection con = establecerConector();
//Generamos una matriz para almecenar los datos que resulten de la consulta
String[][] datos = new String[100][3];
//Nuevamente usamos el bloque try catch para intentar realizar la consulta
try {
//inicializamos los siguientes objetos
PreparedStatement ps;
ResultSet res;
//Generamos la consulta por todos los datos almacenados en la tabla productos y la almacenamos en el objeto ps
ps = con.prepareStatement("SELECT * FROM Productos;");
//Ejecutamos la consulta y la almacenamos en el objeto res
res = ps.executeQuery();
cont=0;
//Ejecutamos un bloque while mientras el objeto res aun contenga datos
while(res.next()) {
//almacenamos en nuestra matriz la data obtenida en res
datos[cont][0]=res.getString("CODIGO");
datos[cont][1]=res.getString("Nombre");
datos[cont][2]=res.getString("Cantidad");
cont++;
}
//Cerramos la conexion con la base de datos
con.close();
}catch(Exception e) {
System.out.print(e);
}
//Retornamos la matriz con los datos obtenidos
return datos;
}
Del código anterior, utilizamos una matriz de tamaño 100 x 3, aclarando que 100 son el numero de filas y 3 el numero de columnas, osea tenemos capacidad de almacenar 100 lineas de datos. La variable cont la utilizamos para contar cuantas lineas de datos obtenemos como respuesta de la base, hacemos esto con el objetivo de poder imprimir los datos solo hasta la ultima linea de almacenada y no imprimir lineas en blanco.
El código para mostrar la data almacenada en nuestra base la vemos a continuación:
public static void main(String[] args) {
//Creamos un objeto de la clase que hemos creado.
query q = new query();
//Consultamos a la base de datos
String [][] datos = q.consultarProducto();
for(int i=0; cont>i;i++){
System.out.print(i+1+ "\t"+datos[i][0]+" \t"+datos[i][1] + " \t"+datos[i][2]);
System.out.println();
}
}
Ahora escribiremos el código para insertar data en nuestra base de datos:
public void ingresarDatos(String[] values) {
Connection con = establecerConector();
try {
PreparedStatement ps;
int res;
ps = con.prepareStatement("insert into (productos \"CODIGO\",\"Nombre\",\"Cantidad\") VALUES (?,?,?); ");
ps.setString(1, values[0]);
ps.setString(2, values[1]);
ps.setString(3, values[2]);
res = ps.executeUpdate();
con.close();
}catch(Exception e) {
System.out.print(e);
}
}
Ahora hagamos un pequeño programa menu que nos permita ver o ingresar datos a nuestra base:
public static void main(String[] args) {
//Creamos un objeto de la clase que hemos creado.
query q = new query();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader (isr);
boolean f=true;
while(f) {
System.out.print("\nMENU: \n[1] Ingresar datos\n[2] Mostrar Datos\n[3] Salir");
String cadena="";
try {
System.out.print("\nIngrese una opcion: ");
cadena = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
switch(cadena) {
case "1":
try {
System.out.print("\nIngrese el codigo del producto: ");
String cod = br.readLine();
System.out.print("\nIngrese el nombre del producto: ");
String nom = br.readLine();
System.out.print("\nIngrese el numero de stock: ");
String num = br.readLine();
String [] datos = {cod,nom,num};
q.ingresarDatos(datos);
}catch(Exception e) {
System.out.print(e);
}
break;
case "2":
String[][] resultado = q.consultarProducto();
for(int i=0;cont>i;i++) {
System.out.print(i+1+"\t"+resultado[i][0]+"\t"+resultado[i][1]+"\t"+resultado[i][2]+"\n");
}
break;
case "3":
f=false;
System.out.print("\nADIOS!!");
break;
default:
System.out.print("Por favor ingrese una opcion valida");
}
}
}
}
Con esto finalizamos este pequeño programa en java para manejar nuestra base de datos. A partir de ahora podemos mejorar nuestro programa con una interfaz gráfica o utilizarlo en sistemas embebidos.
Un ejemplo más elaborado es el que te muestro a continuación, por favor dale un vistazo y si tienes alguna sugerencia o critica constructiva por favor envíalo a este correo sstechnologyrp@gmail.com ya que es una beta para un proyecto.
Descarga el ejemplo dando clic en la imagen
Muchas gracias por tu tiempo
Entradas populares
RFID con arduino y raspberry pi + base de datos
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Realizando un interfaz grafica en java para arduino + mq3
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios
Publicar un comentario