logo

Estableciendo una conexión JDBC en Java

Antes Estableciendo una conexión JDBC en Java (el front-end, es decir, su programa Java y el back-end, es decir, la base de datos) deberíamos aprender qué es exactamente un JDBC y por qué surgió. Ahora analicemos qué significa exactamente JDBC y lo explicaremos con la ayuda de ilustraciones de la vida real para que funcione.

¿Qué es JDBC?

JDBC es un acrónimo de Java Database Connectivity. Es un avance para ODBC (Conectividad abierta de bases de datos). JDBC es una especificación API estándar desarrollada para mover datos desde el front-end al back-end. Esta API consta de clases e interfaces escritas en Java. Básicamente actúa como una interfaz (no la que usamos en Java) o canal entre su programa Java y las bases de datos, es decir, establece un vínculo entre los dos para que un programador pueda enviar datos desde el código Java y almacenarlos en la base de datos para uso futuro. .



Ilustración: Trabajo de JDBC correlacionado con el tiempo real.

trabajo_en_tiempo_real_de_JDBC

¿Por qué surgió JDBC?

Como se dijo anteriormente, JDBC es un avance para ODBC, el hecho de que ODBC dependa de la plataforma tenía muchos inconvenientes. La API ODBC se escribió en C, C++, Python y Core Java y, como sabemos, los lenguajes anteriores (excepto Java y parte de Python) dependen de la plataforma. Por lo tanto, para eliminar la dependencia, JDBC fue desarrollado por un proveedor de bases de datos que constaba de clases e interfaces escritas en Java.



Pasos para conectar una aplicación Java con una base de datos

A continuación se detallan los pasos que explican cómo conectarse a la base de datos en Java:

Paso 1 – Importar los paquetes
Paso 2 – Cargue los controladores utilizando el método forName()
Paso 3 – Registrar los conductores usando DriverManager
Etapa 4 – Establecer una conexión usando el objeto de clase Conexión
Paso 5 – Crear una declaración
Paso 6 – Ejecutar la consulta
Paso 7 – Cerrar las conexiones

Conectividad de base de datos Java

Estableciendo-conexión-JDBC-en-Java



Analicemos estos pasos brevemente antes de implementarlos escribiendo un código adecuado para ilustrar los pasos de conectividad para JDBC.

Paso 1: Importar los paquetes

Paso 2: Cargando los controladores

Para empezar, primero debe cargar el controlador o registrarlo antes de usarlo en el programa. La inscripción debe realizarse una vez en su programa. Puede registrar un conductor de una de las dos formas que se mencionan a continuación:

2-A Clase.paraNombre()

Aquí cargamos el archivo de clase del controlador en la memoria en tiempo de ejecución. No es necesario utilizar objetos nuevos o crear. El siguiente ejemplo utiliza Class.forName() para cargar el controlador de Oracle como se muestra a continuación:

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

2-B DriverManager.registerDriver()

DriverManager es una clase incorporada de Java con un registro de miembro estático. Aquí llamamos al constructor de la clase de controlador en tiempo de compilación. El siguiente ejemplo utiliza DriverManager.registerDriver() para registrar el controlador de Oracle como se muestra a continuación:

 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>

Paso 3: Establecer una conexión usando el Objeto de clase de conexión

Después de cargar el controlador, establezca las conexiones como se muestra a continuación:

Connection con = DriverManager.getConnection(url,user,password)>
  • usuario: U sername desde el cual se puede acceder al símbolo del sistema SQL.
  • contraseña: contraseña desde la cual se puede acceder al símbolo del sistema SQL.
  • con: Es una referencia a la interfaz de Conexión.
  • URL : Localizador uniforme de recursos que se crea como se muestra a continuación:
String url = jdbc:oracle:thin:@localhost:1521:xe>

Donde Oracle es la base de datos utilizada, Thin es el controlador utilizado, @localhost es la dirección IP donde se almacena una base de datos, 1521 es el número de puerto y xe es el proveedor de servicios. Los 3 parámetros anteriores son de tipo String y el programador debe declararlos antes de llamar a la función. Se puede hacer referencia al uso de esto para formar el código final.

Etapa 4: Crear una declaración

Una vez que se establece una conexión, puede interactuar con la base de datos. Las interfaces JDBCStatement, CallableStatement y PreparedStatement definen los métodos que le permiten enviar comandos SQL y recibir datos de su base de datos.
El uso de la declaración JDBC es el siguiente:

Statement st = con.createStatement();>

Nota: Aquí, con es una referencia a la interfaz de conexión utilizada en el paso anterior.

Paso 5: Ejecutar la consulta

Ahora viene la parte más importante, es decir, ejecutar la consulta. La consulta aquí es una consulta SQL. Ahora sabemos que podemos tener múltiples tipos de consultas. Algunos de ellos son los siguientes:

  • La consulta para actualizar/insertar una tabla en una base de datos.
  • La consulta para recuperar datos.

El método ejecutarQuery() del Interfaz de declaración se utiliza para ejecutar consultas de recuperación de valores de la base de datos. Este método devuelve el objeto de ResultSet que se puede utilizar para obtener todos los registros de una tabla.
El método ejecutarUpdate (consulta SQL) de la interfaz Statement se utiliza para ejecutar consultas de actualización/inserción.

Pseudocódigo:

int m = st.executeUpdate(sql); if (m==1)  System.out.println('inserted successfully : '+sql); else  System.out.println('insertion failed');>

Aquí sql es una consulta SQL del tipo String:

Java

mini barra de herramientas excel




// This code is for establishing connection with MySQL> // database and retrieving data> // from db Java Database connectivity> /*> >*1. import --->java.sql> >*2. load and register the driver --->com.jdbc.> >*3. create connection> >*4. create a statement> >*5. execute the query> >*6. process the results> >*7. close> >*/> import> java.io.*;> import> java.sql.*;> class> GFG {> >public> static> void> main(String[] args)>throws> Exception> >{> >String url> >=>'jdbc: mysql://localhost:3306/table_name '>; // table details> >String username =>'rootgfg'>;>// MySQL credentials> >String password =>'gfg123'>;> >String query> >=>'select *from students'>;>// query to be run> >Class.forName(> >'com.mysql.cj.jdbc.Driver'>);>// Driver name> >Connection con = DriverManager.getConnection(> >url, username, password);> >System.out.println(> >'Connection Established successfully'>);> >Statement st = con.createStatement();> >ResultSet rs> >= st.executeQuery(query);>// Execute query> >rs.next();> >String name> >= rs.getString(>'name'>);>// Retrieve name from db> >System.out.println(name);>// Print result on console> >st.close();>// close statement> >con.close();>// close connection> >System.out.println(>'Connection Closed....'>);> >}> }>

>

>

Producción :

ventana_consola

Paso 6: cerrar las conexiones

Finalmente hemos enviado los datos a la ubicación especificada y ahora estamos a punto de completar nuestra tarea. Al cerrar la conexión, los objetos de Statement y ResultSet se cerrarán automáticamente. El método close() de la interfaz Connection se utiliza para cerrar la conexión. Se muestra a continuación de la siguiente manera:

 con.close();>

Ejemplo:

Java




// Java Program to Establish Connection in JDBC> // Importing database> import> java.sql.*;> // Importing required classes> import> java.util.*;> // Main class> class> Main {> >// Main driver method> >public> static> void> main(String a[])> >{> >// Creating the connection using Oracle DB> >// Note: url syntax is standard, so do grasp> >String url =>'jdbc:oracle:thin:@localhost:1521:xe'>;> >// Username and password to access DB> >// Custom initialization> >String user =>'system'>;> >String pass =>'12345'>;> >// Entering the data> >Scanner k =>new> Scanner(System.in);> >System.out.println(>'enter name'>);> >String name = k.next();> >System.out.println(>'enter roll no'>);> >int> roll = k.nextInt();> >System.out.println(>'enter class'>);> >String cls = k.next();> >// Inserting data using SQL query> >String sql =>'insert into student1 values(''> + name> >+>'','> + roll +>',''> + cls +>'')'>;> >// Connection class object> >Connection con =>null>;> >// Try block to check for exceptions> >try> {> >// Registering drivers> >DriverManager.registerDriver(> >new> oracle.jdbc.OracleDriver());> >// Reference to connection interface> >con = DriverManager.getConnection(url, user,> >pass);> >// Creating a statement> >Statement st = con.createStatement();> >// Executing query> >int> m = st.executeUpdate(sql);> >if> (m ==>1>)> >System.out.println(> >'inserted successfully : '> + sql);> >else> >System.out.println(>'insertion failed'>);> >// Closing the connections> >con.close();> >}> >// Catch block to handle exceptions> >catch> (Exception ex) {> >// Display message when exceptions occurs> >System.err.println(ex);> >}> >}> }>

>

>

Salida después de importar datos en la base de datos:

pantalla_salida_después_de_importación_datos