No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
1 Hrs
44 Min
2 Seg
Curso Avanzado de Java SE

Curso Avanzado de Java SE

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Definición y composición del API

24/40
Recursos

¿Cómo darle persistencia a los datos con JDBC en Java?

Es momento de llevar tu desarrollo a otro nivel, haciendo que los datos que trabajas en tus aplicaciones Java sean más persistentes. Esto se logra incorporando una base de datos como MySQL. Gracias al API de JDBC (Java Database Connectivity), puedes establecer una conectividad eficiente entre tu aplicación y la base de datos. Aprenderemos cómo esta herramienta te permite ejecutar sentencias, traer resultados y manipular datos de manera fluida.

¿Qué es JDBC?

JDBC, acrónimo de Java Database Connectivity, es un conjunto de APIs que permite a las aplicaciones Java comunicarse con bases de datos. Esto se logra mediante varias clases que facilitan la conexión y manipulación de datos. Es compatible con muchos motores de bases de datos, lo que lo hace muy flexible y útil.

¿Cuáles son las clases principales que componen JDBC?

  1. DriverManager: Esta clase es la encargada de crear instancias de conexión. Utiliza los drivers que hayas incluido en tu proyecto para generar objetos de conexión.

  2. Connection: Una vez establecida la conexión, esta clase se ocupa de todo el ciclo de vida de la sesión. Maneja cuándo se abre y cierra la conexión con la base de datos.

  3. Statement y PreparedStatement: Estas clases son fundamentales para consultar datos. Statement ejecuta consultas simples, mientras que PreparedStatement permite incluir parámetros, ideal para consultas más complejas.

  4. ResultSet: Esta interfaz facilita el manejo de datos obtenidos tras una consulta. Permite iterar y extraer datos, transformándolos en objetos manejables por Java.

¿Cómo se ejecutan las sentencias SQL con JDBC?

JDBC te permite ejecutar diferentes tipos de sentencias SQL mediante sus métodos. Algunos de ellos son:

  • executeQuery: Ideal para ejecutar sentencias SELECT y obtener un ResultSet con los datos traídos de la base de datos.

    ResultSet rs = statement.executeQuery("SELECT * FROM Employee");
    
  • executeUpdate: Se utiliza para sentencias INSERT, UPDATE o DELETE. Es eficiente para modificar datos en la base de datos, devolviendo un entero con la cantidad de filas afectadas.

    int rowsInserted = statement.executeUpdate("INSERT INTO Employee VALUES (1, 'John Doe')");
    
  • execute: Para casos más complejos, como ejecutar JOINS o vistas de varias tablas. Este método es flexible, pudiendo devolver un booleano o un ResultSet.

    boolean result = statement.execute("YOUR COMPLEX QUERY");
    

¿Qué se necesita para implementar JDBC en tu proyecto?

Para implementar JDBC, necesitas incluir los drivers necesarios en tu proyecto. Si trabajas con MySQL, puedes obtener el driver correspondiente desde el sitio oficial de MySQL. Dependiendo del motor que utilices, necesitarás el driver específico para asegurar una correcta conexión a la base de datos.

¿Por qué es importante dominar JDBC?

Comprender e implementar JDBC en tus proyectos Java te abre puertas para trabajar con vastos conjuntos de datos de forma organizada y persistente. Este conocimiento te permitirá no solo ejecutar consultas básicas sino también manipular los datos eficientemente dentro de un entorno profesional. Además, familiarizarte con otros motores de bases de datos puede aumentar la versatilidad y alcance de tus proyectos.

¡Sigue aprendiendo y mejorando tus habilidades en bases de datos explorando cursos y materiales adicionales! El dominio de estas herramientas te convierte en un desarrollador más completo y preparado para enfrentar los desafíos del mundo real.

Aportes 24

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hay una mejor explicación de lo que hace cada componente en la persistencia de datos;que en directamente en el curso que persistencia de datos con java

La conectividad de base de datos de Java (JDBC)

La API de conectividad de base de datos de Java (JDBC) es el estándar de la industria para la conectividad independiente de la base de datos entre el lenguaje de programación Java y una amplia gama de bases de datos. Bases de datos SQL y otras fuentes de datos tabulares, como hojas de cálculo o archivos sin formato. La API de JDBC proporciona una API de nivel de llamada para el acceso a bases de datos basadas en SQL.

SQLite, MySQL, PostgreSQL, MS Access, MongoDB, Hypertable, Apache CouchDB… entre muhcas más

Es compatible con motores de bases de datos entre los que están:
SQLite, MySQL, PostgreSQL, MS Access, MongoDB.

En este caso tambien hay otro concepto que se maneja en programacion que es datasources que es una forma de conectarse a una base de datos atraves del servidor

En este caso adjunto documentacion de IBM del servidor websphere

Las aplicaciones instaladas utilizan datos de fuentes de recursos para obtener conexión a las bases de datos relacionales. Para crear estas conexiones entre una aplicación y una base de datos, WebSphere® Application Server utiliza las clases de controlador de clases que están encapsuladas por el proveedor JDBC, que es un objeto que representa las categorías de proveedor de destino específico de JDBC para WebSphere Application Server. Para acceder a las bases de datos relacionales, las aplicaciones utilizan los controladores de archivos JDBC y las fuentes de datos que configure para WebSphere Application Server.

Link de la documentacion

https://www.ibm.com/support/knowledgecenter/pt-br/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/twim_fedmap_datasconf.html

Documentacion de weblogic

Lo primero que se suele hacer una vez que se dispone de un servidor de aplicaciones es configurar las conexiones a las bases de datos, para ello en weblogic permite configurar un origen de datos JDBC o data source JDBC, este es un objeto enlazado al árbol JNDI que proporciona conectividad de base de datos a través de un pool de conexiones JDBC. Las aplicaciones pueden buscar un origen de datos en el árbol JNDI y tomar prestada una conexión de base de datos de un origen de datos. En el ciclo normal de desarrollo de una aplicación fusión con ADF, inicialmente en la etapa de desarrollo cuando implementamos la capa del negocio en el proyecto Model de nuestra aplicación ADF fusión se crea una conexión a la base de datos haciendo uso de una conexión JDBC vía URL, esta se usaa lo largo del proyecto específicamente en elAplication Module para obtener conectividad a la base de datos y lograr crear el modelo usando Business Components , esto ha servido durante toda la etapa de desarrollo pero en la etapa de producción siempre se debe configurar un origen de datos JDBC en el servidor de aplicaciones y asegurarse que en la aplicación se use dicho origen de datos, esto debido a temas de portabilidad y administración de las aplicaciones, continuemos.

Link de la documentación

https://www.oracle.com/technetwork/es/articles/adf/oracle-weblogic-server-parte2-1942862-esa.html

En la universidad estamos viendo JDBC con Microsoft Access, por cuestión de que los estudiantes no tenemos accesso de administrador en las computadoras de la universidad jeje

Java se puede conectar con Mysq, Sql, Oracle, Posgress y ++… todos estos cursos de base de datos los tiene Platzi. 😃.

¿Puedo conectar Java con MongoDb?

Java™ Database Connectivity (JDBC) es la especificación JavaSoft de una interfaz de programación de aplicaciones (API) estándar que permite que los programas Java accedan a sistemas de gestión de bases de datos. La API JDBC consiste en un conjunto de interfaces y clases escribas en el lenguaje de programación Java.

Con estas interfaces y clases estándar, los programadores pueden escribir aplicaciones que conecten con bases de datos, envíen consultas escritas en el lenguaje de consulta estructurada (SQL) y procesen los resultados.

Otros motores que puede manejar java son: Posgrest, Sql Server, Oracle etc. El cual para mi el mejor seria Oracle porque pertenece a la familia de java.

Lenguaje de definición de datos (DDL)

Aca les comparto uno codigo que he creado para podernos conectara una base de datos

<Conexion base de Datos Java
public void conectar() throws ClassNotFoundException {

        try {

 

            if (this.conexion == null) {

                Class.forName("oracle.jdbc.driver.OracleDriver");

                String serverName = "145.2.6.65";

                String portNumber = "1521";

                String sid = "xe";

                String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;

                String username = "prueba";

                String password = "prueba";

                this.conexion = DriverManager.getConnection(url, username, password);

 

                /*Class.forName("oracle.jdbc.OracleDriver");

                 String BaseDeDatos = "jdbc:oracle:thin:@localhost:1521:XE";

                 this.conexion = DriverManager.getConnection(BaseDeDatos, "prueba", "prueba");

                 */

                if (this.conexion != null) {

                    System.out.println("Conexion exitosa!");

                } else {

                    System.out.println("Conexion fallida!");

                }

            }

 

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }>

Ahora para las consultas las pueden hacer de la siguiente manera

Insert

<Insert Java
Conexion baseDatos = Conexion.getConex();

        baseDatos.conectar();

        Statement sentencia;

        ResultSet resultado = null;

        try {

            sentencia = (Statement) baseDatos.getConexion().createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

            resultado = sentencia.executeQuery("select * from PRUEBA.USUARIOCE");

 

            while (resultado.next()) {

 

                int consulta = resultado.getInt("IDUSUARIO");

                String consulta1 = resultado.getString("DESCUSUARIO");

                String consulta2 = resultado.getString("CLAVE");

                int consulta3 = resultado.getInt("ACTIVO");

                int consulta4 = resultado.getInt("IDPERFIL");

                int consulta5 = resultado.getInt("CONTADOR");

 

                Usuarios ip = new Usuarios();

                ip.setIDUSUARIO(consulta);

                ip.setDESCUSUARIO(consulta1);

                ip.setCLAVE(consulta2);

                ip.setACTIVO(consulta3);

                ip.setIDPERFIL(consulta4);

                ip.setCONTADOR(consulta5);

                lista.add(ip);

            }

            baseDatos.Desconectar();

        } catch (Exception e) {

            e.printStackTrace();

            System.out.println("Error consultar");

            return null;

        }

        return lista;>

Select

<Consulta Select Java
Conexion baseDatos = Conexion.getConex();

        baseDatos.conectar();

        Statement sentencia;

        ResultSet resultado = null;

        try {

            sentencia = (Statement) baseDatos.getConexion().createStatement(ResultSet.TYPE_FORWARD_ONLY,   ResultSet.CONCUR_READ_ONLY);

            resultado = sentencia.executeQuery("select * from PRUEBA.USUARIOCE");

 

            while (resultado.next()) {

 

                int consulta = resultado.getInt("IDUSUARIO");

                String consulta1 = resultado.getString("DESCUSUARIO");

                String consulta2 = resultado.getString("CLAVE");

                int consulta3 = resultado.getInt("ACTIVO");

                int consulta4 = resultado.getInt("IDPERFIL");

                int consulta5 = resultado.getInt("CONTADOR");

 

                Usuarios ip = new Usuarios();

                ip.setIDUSUARIO(consulta);

                ip.setDESCUSUARIO(consulta1);

                ip.setCLAVE(consulta2);

                ip.setACTIVO(consulta3);

                ip.setIDPERFIL(consulta4);

                ip.setCONTADOR(consulta5);

                lista.add(ip);

            }

            baseDatos.Desconectar();

        } catch (Exception e) {

            e.printStackTrace();

            System.out.println("Error consultar");

            return null;

        }

       return lista;

>

Muchas gracias por la explicación de estos elementos que nos brinda el JDBC y como nos vas a ser útiles en el proyecto.


    public void metodo() {
        // PreparedStatement pstGuitarras =null;
        final String sql = "select * from guitarra, usuario where guitarra.tipo = premium AND usuario.tipo = premium";
        Connection cn ;
        PreparedStatement pstGuitarras;
        try (cn = DriverManager.getConnection("jdbc:mysql://localhost:3304/catalogo", " root", ""); pstGuitarras = cn.preparedStatement(sql);) {
            ResultSet rs = pstGuitarras.executeQuery();
            while (rs.next()) {
            }
        } catch (SQLException e) {
            System.err.println(" Error: " + e);
        }
    }




Excelso Anahí…!

It’s the same way to make a petition to a database than a web api? In example, at c# yut can make directly a petition just with the uri, I’d like to know if in java there’s another way to make it or if it’s the same

Se puso interesante

Excelente explicación de JDBC Java Data Base Connectivity

Genial.

superr 😄

Super 😃

excelente aplicación