Conectar Java y Sqlite en Netbeans


Sqlite es un gestor de base de datos, pequeño, potente, portable que sirve para nuestros proyectos, esta disponible para casi todos los lenguajes, incluido Java, veamos como conectar una base de datos sqlite con java en el IDE Netbeans.

Vamos a hacer un ejemplo usando una base de datos de contactos.

Sobre SQLite

Las bases de datos SQLite se incluyen en un archivo con extencion *.db por ejemplo contactos.db

Esto hace que podamos portar o guardar estos archivo.

Normalmente la conexion a SQLite es para el archivo de base de datos y no se maneja usuario/contraseña como lo hariamos con mysql.

Crear Proyecto en Java

Vamos a crear un proyecto en java, aqui bastara un proyecto normal ya que no haremos uso de interfaces graficas.

Conector Java – Sqlite

Para conectar java y SQlite es necesario un conector que viene en un archivo .jar.

Para incluir el conector en nuestro proyecto vamos a incluir la dependencia de la version mas reciente del maven repository.

https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc

Agregaremos el siguiente codigo en el archivo pom.xml.

<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.39.3.0</version>
</dependency>

Debe ir dentro de las etiquetas <dependencies> </dependencies>

Las dependencias se descargan automaticamente al ejecutar el proyecto o usando la opcion “Download Declared Dependencies”.

Codigo de la Conexion

Ya que tenemos todo , ahora vamos a nuestra clase principal y en la funcion main empezamos a escribir.

El codigo basico de la conexion y todo el resto de codigo que usaremos debe ir en un try-catch.

Connection con= null;
        try{
            String url = "jdbc:sqlite:contactos.db";
            con = DriverManager.getConnection(url);
            //// MAS CODIGO
        }
        catch(SQLException e){
            System.out.println("Error:" + e.getMessage());
        
        }

Apartir de aqui todo el codigo que veamos va a ir en la seccion //// MAS CODIGO del try-catch

El codigo de la conexion es facil, ya que solo hacemos referencia al archivo contactos.db si el archivo no existe entonces se va a cerar y a empezar desde cero.

Crear Tablas

Lo siguiente seria crear una tabla para usaremos el siguiente codigo.

///////// CREAR TABLA
            String sql_tabla = "CREATE TABLE IF NOT EXISTS contacto ("
                    + "id integer primary key,"
                    + "name text,"
                    + "lastname text,"
                    + "phone text,"
                    + "address text,"
                    + "email text"
                    + ");";
            
            Statement stmt = con.createStatement();
            stmt.execute(sql_tabla);

La variable String sql_tabla contiene el codigo para crear una tabla, usamos IF NOT EXISTS para crear la tabla en caso de que no exista.

Despues creamos un Statement apartir de la conexion que creamos anteriormente y ejecutamos el SQL.

Insertar Datos

Para insertar datos vamos a usar PreparedStatement, es decir, crearemos una consulta SQL y en el espacio donde van los datos usaremos simbolos de interrogacion “?” que despues le asignaremos valores usando la funcion setString.

            ///////// Insertar Datos
            String sql_insert = "insert into contacto (name, lastname, phone, address, email) values (?,?,?,?,?)";
            
            PreparedStatement pstmt = con.prepareStatement(sql_insert);
            pstmt.setString(1, "Agustin");
            pstmt.setString(2, "Ramos");
            pstmt.setString(3, "9371331142");
            pstmt.setString(4, "Mexico");
            pstmt.setString(5, "evilnapsis@gmail.com");
            
            pstmt.executeUpdate();

Al asignar los valores con la funcion/metodo setString el primer parametro es el numero o la posicion del valor que vamos a sustituir, estos valores empiezan desde 1 a N. No confundir que empiezan de 0 a N como un array.

Con este ejemplo de insertar datos se puede usar para Actualizar datos y para eliminar datos.

Mostrar o Recorrer Resultados

Para recorrer los datos vamos a usar un Statement y un ResultSet ademas de la Conection que ya tenemos.

            ///////// Mostrar Datos
            String sql_select = "select * from contacto";
            Statement stmt2 = con.createStatement();
            ResultSet rs = stmt2.executeQuery(sql_select);
            
            while(rs.next()){
                System.out.println("/////////////////////");
                System.out.println("Id:" + rs.getString("id"));
                System.out.println("Nombre:" + rs.getString("name"));
                System.out.println("Apellido:" + rs.getString("lastname"));
                System.out.println("Email:" + rs.getString("email"));
                System.out.println("Direccion:" + rs.getString("address"));
                 System.out.println("Telefono:" + rs.getString("phone"));
               System.out.println("/////////////////////");
            }

La variable String sql_select es la consulta SQL a ejecutar y en el While se recorre cada valor del ResultSet.

Se usa la funcion rs.getString , rs.getInt , rs.getDate … para recibir los valores segun su tipo, Texto, entero o Fecha .. etc.

El primer parametro de la funcion getString, getInt, …, es el nombre del campo de la tabla al que hacemos referencia. Tambien se puede usar el Indice (numero) de la posicion del campo de la tabla, empezando desde 1 a N.

Conclusion

Espero les sirva este tutorial o guia para empezar a conecar java, sqlite en sus proyectos.