Java Database Connectivity es una API estándar o podemos decir una interfaz de aplicación presente entre el lenguaje de programación Java y las diversas bases de datos como Oracle, SQL, PostgreSQL, MongoDB, etc. Básicamente conecta el front-end (para interactuar con los usuarios) con el backend para almacenar datos ingresados por los usuarios en los detalles de la tabla. JDBC o Java Database Connection crea una base de datos siguiendo los siguientes pasos:
- Importar la base de datos
- Cargar y registrar controladores
- Crear una conexión
- Crear una declaración
- Ejecutar la consulta
- Procesar los resultados
- Cerrar la conexión
Paso 1: Importar la base de datos
Java consta de muchos paquetes que facilitan la necesidad de codificar cada lógica. Tiene un paquete incorporado de SQL que se necesita para la conexión JDBC.
Sintaxis:
import java.sql* ;
Paso 2: Cargue y registre los controladores
Esto lo hace JVC (Java Virtual Machines) que carga ciertos archivos de controlador en la memoria secundaria que son esenciales para el funcionamiento de JDBC.
Sintaxis:
forName(com.mysql.jdbc.xyz);
El método class.forname() es el enfoque más común para registrar controladores. Carga dinámicamente el archivo del controlador en la memoria.
Ejemplo:
try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch(ClassNotFoundException e) { System.out.println("cant load driver class!"); System.Exit(1); }
Aquí, se utiliza la base de datos Oracle. Ahora consideremos un ejemplo aleatorio de sistemas de administración de bases de datos de hoteles. Ahora aplicando comandos SQL sobre ella nombrando esta base de datos como ‘muestra’. Ahora suponga que el usuario comienza a insertar tablas en su interior con el nombre de «muestra1» y «muestra2».
Java
// Connections class // Importing all SQL classes import java.sql.*; public class connection{ // Object of Connection class // initially assigned NULL Connection con = null; public static Connection connectDB() { try { // Step 2: involve among 7 in Connection // class i.e Load and register drivers // 2(a) Loading drivers using forName() method // Here, the name of the database is mysql Class.forName("com.mysql.jdbc.Driver"); // 2(b) Registering drivers using DriverManager Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/database", "root", "1234"); // Root is the username, and // 1234 is the password // Here, the object of Connection class is return // which further used in main class return con; } // Here, the exceptions is handle by Catch block catch (SQLException | ClassNotFoundException e) { // Print the exceptions System.out.println(e); return null; } } }
Paso 3: Crea una conexión
La creación de una conexión se logra mediante el método getconnection() de la clase DriverManager, que contiene la URL de la base de datos, el nombre de usuario y la contraseña como parámetro.
Sintaxis:
public static Connection getConnection(String URL, String Username, String password) throws SQLException
Ejemplo:
String URL = "jdbc:oracle:thin:@amrood:1241:EMP"; String USERNAME = "geekygirl"; String PASSWORD = "geekss" Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
Aquí,
La URL de la base de datos parece- jdbc:oracle:thin:@amrood:1221:EMP
El nombre de usuario es-“geekygirl”
Las contraseñas son-“geekss”
Paso 4: Crear una declaración
La declaración de consulta se crea para interactuar con la base de datos siguiendo la sintaxis adecuada. Antes de escribir la consulta, debemos conectar la base de datos usando el método connect(). Por ejemplo:
conn = connection.connectDB(); String sql = "select * from customer";
Esta declaración muestra básicamente el contenido de la tabla de clientes. También podemos crear una declaración utilizando el método createStatement() de la interfaz Connection. Aquí, el objeto de la declaración es el principal responsable de ejecutar consultas.
Sintaxis:
public Statement createStatement()throws SQLException
Ejemplo:
Statement s = conn.createStatement();
Paso 5: Ejecutar la consulta
Para ejecutar la consulta (escrita arriba), necesitamos convertir la consulta en formato legible por JDBC, para eso usamos la función de instrucción preparada() y para ejecutar la consulta convertida, usamos la función de ejecución de consulta() de la interfaz de declaración. Devuelve el objeto de «rs» que se utiliza para encontrar todos los registros de la tabla.
Sintaxis:
public rs executeQuery(String sql)throws SQLException
Ejemplo:
p = conn.prepareStatement(sql); rs = p.executeQuery();
Paso 6: Procesar los resultados
Ahora verificamos si el método rs.next() no es nulo, luego mostramos los detalles de ese cliente en particular presente en la tabla «cliente». La función next() básicamente verifica si hay algún registro que satisfaga la consulta, si ningún registro satisface la condición, entonces devuelve nulo. A continuación se muestra el código de muestra:
while (rs.next()) { int id = rs.getInt("cusid"); String name = rs.getString("cusname"); String email = rs.getString("email"); System.out.println(id + "\t\t" + name + "\t\t" + email); }
Paso 7: Cierra la conexión
Después de realizar todas las operaciones, es necesario cerrar la conexión JDBC después de que ya no se necesite la sesión de la base de datos. Si no se hace explícitamente, entonces el recolector de basura de Java hace el trabajo por nosotros. Sin embargo, siendo un buen programador, aprendamos cómo cerrar la conexión de JDBC. Entonces, para cerrar la conexión JDBC, se usa el método close(), este método cierra toda la conexión JDBC.
Sintaxis:
public void close()throws SQLException
Ejemplo:
conn.close();
El código de muestra se ilustra arriba:
Java
// Importing SQL libraries to create database import java.sql.*; class GFG{ // Step 1: Main driver method public static void main(String[] args) { // Step 2: Creating connection using // Connection type and inbuilt function Connection con = null; PreparedStatement p = null; ResultSet rs = null; con = connection.connectDB(); // Here, try block is used to catch exceptions try { // Here, the SQL command is used to store // String datatype String sql = "select * from customer"; p = con.prepareStatement(sql); rs = p.executeQuery(); // Here, print the ID, name, email // of the customers System.out.println("id\t\tname\t\temail"); // Check condition while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); String email = rs.getString("email"); System.out.println(id + "\t\t" + name + "\t\t" + email); } } // Catch block is used for exception catch (SQLException e) { // Print exception pop-up on the screen System.out.println(e); } } }
Producción:
Publicación traducida automáticamente
Artículo escrito por pradiptamukherjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA