¿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?
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.
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.
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.
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.
Clases: DriverManager: Nos permite crear una instancia de la conexión Connection: Genera la sesión, maneja todo el ciclo de vida de una sesión cuando nos conectamos a una base de datos. Statement: Nos ayuda a traer datos de una tabla. PreparedStatement: Hace lo mismo que Statement con la diferencia de que éste nos permite recibir parámetros para la clausula where. ResultSet: Es una interfaz que nos ayudará a manejar los datos obtenidos convirtiendo los datos en objetos.
Para generar un CRUD también tenemos métodos a partir de Statement/PreparedStatement:
Para ejecutar un SELECT el método a usar será el: executeQuery(sqlString)
Para ejecutar INSERT,UPDATE,DELETE or a DDL usaremos el método: executeUpdate(sqlString)
Para ejecutar otros comandos de SQL usaremos: execute(sqlString).
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 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.
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
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.
Lo más importante de JDBC es que te va a permitir conectar con cualquier Base de Datos sin tener que hacer grandes cambios en tu aplicación (solo cargar el Driver correspondiente).
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™ 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.
publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in); int[] particiones =newint[100];// Arreglo para las particiones de memoria int[] procesos =newint[100];// Arreglo para los tamaños de los procesos int cantidadParticiones =0;// Número actual de particiones int cantidadProcesos =0;// Número actual de procesos int opcion;do{System.out.println("\nSeleccione una opción:");System.out.println("1. Agregar partición de memoria");System.out.println("2. Agregar proceso");System.out.println("3. Primer ajuste");System.out.println("4. Mejor ajuste");System.out.println("5. Peor ajuste");System.out.println("6. Mostrar procesos y particiones");System.out.println("7. Terminar programa"); opcion = scanner.nextInt();switch(opcion){case1:System.out.print("Ingrese el tamaño de la partición de memoria: "); int tamanoParticion = scanner.nextInt(); particiones[cantidadParticiones++]= tamanoParticion;break;case2:System.out.print("Ingrese el tamaño del proceso: "); int tamanoProceso = scanner.nextInt(); procesos[cantidadProcesos++]= tamanoProceso;// procesos[cantidadProcesos
break;
case 3:
break;case4:// Implementa la lógica del mejor ajuste// ...break;case5:// Implementa la lógica del peor ajuste// ...break;case6:// Muestra los procesos y particionesSystem.out.println("Particiones de memoria:");for(int i =0; i < cantidadParticiones; i++){System.out.println("Partición "+(i +1)+": "+ particiones[i]);}System.out.println("Procesos:");for(int i =0; i < cantidadProcesos; i++){System.out.println("Proceso "+(i +1)+": "+ procesos[i]);}break;case7:System.out.println("Saliendo del programa.");break;default:System.out.println("Opción no válida. Intente nuevamente.");}}while(opcion !=7);}
}
alguien me puede ayudar con esto?
no se como hacer el primer ajuste, mejor ajuste y peor ajuste