Conectividad de base de datos Java

Conoces los conceptos básicos de SQL. Esto es bueno. Pero hoy te sentirás aún mejor. Hoy comenzarás a aprender a trabajar con una base de datos desde una aplicación Java.

Hay muchos DBMS diferentes, por lo que los creadores de Java decidieron estandarizar cómo funciona una aplicación Java con las bases de datos. Y llamaron a este estándar: JDBC : Java DataBase Connectivity .

JDBC tiene 3 interfaces principales:

  • Conexión - responsable de conectarse a la base de datos
  • Declaración - responsable de consultar la base de datos
  • ResultSet - responsable del resultado de la consulta a la base de datos

De hecho, eso es todo. Y ni siquiera aprenderemos todos los métodos de todas las interfaces. Solo ejemplos de trabajo, que complicaremos gradualmente.

JDBC es algo similar a trabajar con servlets. Los creadores de JDBC han escrito varias interfaces y se enorgullecen de llamarlo API de base de datos de Java. Y la implementación de estas interfaces fue asignada a... los creadores del DBMS. Cómo se implementa allí, a nadie le importa. Funciona bien.

Hay cuatro versiones de JDBC y veremos la última. Y no porque sea la más genial, sino porque es la más sencilla.

Administrador de controladores JDBC

La aplicación Java y la base de datos se comunican entre sí a través de una biblioteca denominada controlador JDBC. Este es un conjunto de clases que implementan la API JDBC para un DBMS en particular.

El controlador JDBC correcto se selecciona usando una clase llamada DriverManager . Su interacción se puede representar de la siguiente manera:

La cuestión es que puede usar In-Memory-DB, No-SQL-DB o incluso una base de datos integrada en una aplicación de Android. Como desarrollador de Java, estos matices no le preocupan en absoluto. El Administrador de controladores seleccionará el controlador JDBC correcto para usted y todo funcionará como un reloj.

Por cierto, ¿cómo lo hace?

Conexión al servidor MySQL

¿Recuerda lo que necesitaba para conectarse a un servidor SQL local a través de MySQL Workbench? Si lo olvidé, te recuerdo que necesitabas tres cosas:

  • anfitrión
  • acceso
  • contraseña

Todo está claro con el nombre de usuario y la contraseña, y host, si recuerda, es el nombre de la computadora en la que se encuentra el servidor. Si está ubicado en su computadora local, debe especificar localhost como nombre de host. ¿Y si no es local?

Entonces necesitas usar ... URL. URL significa Localizador Universal de Recursos . Se puede usar para especificar la ubicación de cualquier cosa en la red: un sitio, una impresora, un servidor SQL. De hecho, la URL también se usa para acceder al servidor SQL local. Se ve algo como esto:

mysql://localhost:3306/db_scheme
  • mysql es un protocolo de servidor
  • localhost - nombre de host en la red
  • 3306 - puerto en el que se realizan las solicitudes
  • db_scheme - nombre del esquema (nombre de la base de datos)

Nota. El nombre de la base de datos se puede omitir. Pero si el servidor almacena muchos esquemas de bases de datos, normalmente se crean diferentes usuarios y diferentes derechos de acceso para ellos. Y si el usuario con el que inicia sesión en el servidor SQL no tiene acceso a todas las bases de datos, definitivamente debe especificar el nombre de la base de datos específica a la que tiene acceso.

Al final de esta url puede haber varios parámetros, tipos de codificación, zona horaria, que se consideran parámetros para establecer la nueva conexión a la base de datos.

Además, el protocolo puede ser compuesto. Si toda la comunicación con el servidor de la base de datos se realiza a través de un canal cifrado mediante el protocolo SSH, la URL se puede especificar de la siguiente manera:

ssh:mysql://localhost:3306/db_scheme

Un protocolo no es necesariamente un programa externo. Por ejemplo, si está trabajando con un servidor que utiliza el protocolo JNDI, puede especificarlo así:

jndi:mysql://localhost:3306/db_scheme

Y si desea trabajar con el protocolo API JDBC, debe escribir así:

jdbc:mysql://localhost:3306/db_scheme

Cuando intenta crear una conexión de base de datos, el Administrador de controladores JDBC analiza su SQL-db-URL y determina el nombre del controlador JDBC a partir del nombre del protocolo. Aquí hay un pequeño truco.