Com connectar-se a una base de dades MySQL amb Java

Com connectar-se a una base de dades MySQL amb Java

Java proporciona JDBC (Java DataBase Connectivity) com a part del Java SDK (Software Development Kit). Utilitzant això INCENDI , és molt fàcil connectar-se a una base de dades relacional i realitzar operacions habituals com ara consultar, inserir, actualitzar i suprimir registres.





Tot i que l’API JDBC bàsica s’inclou a Java, la connexió a una base de dades concreta com MySQL o SQL Server requereix un component addicional conegut com a controlador de base de dades. Aquest controlador de base de dades és un component de programari que tradueix les trucades bàsiques de JDBC a un format que entén aquesta base de dades.





com afegir un esquema al text a Photoshop

En aquest article, vegem els detalls de la connexió a una base de dades MySQL i com fer algunes consultes amb ella.





El controlador de base de dades MySQL

Com s’ha explicat anteriorment, per poder connectar-vos a una base de dades MySQL, necessiteu el controlador JDBC per MySQL. S'anomena controlador Connector / J i es pot descarregar des de el lloc MySQL aquí.

Un cop descarregueu el fitxer ZIP (o TAR.GZ), extreu l'arxiu i copieu el fitxer JAR mysql-connector-java - bin.jar a un lloc adequat. Aquest fitxer és necessari per executar qualsevol codi que utilitzi el controlador MySQL JDBC.



Creació d’una base de dades de mostra

Suposant que heu descarregat la base de dades MySQL i configureu-lo correctament on hi tingueu accés, permeteu-nos crear una base de dades de mostra perquè la puguem utilitzar per connectar i realitzar consultes.

Connecteu-vos a la base de dades mitjançant un client que trieu i executeu les instruccions següents per crear una base de dades d'exemple.





create database sample;

També necessitem un nom d’usuari i una contrasenya per poder connectar-nos a la base de dades (tret que vulgueu connectar-vos com a administrador, cosa que en general és una mala idea).

A continuació es crea un usuari anomenat usuari de prova qui es connectarà a la base de dades MySQL des de la mateixa màquina on s'executa (indicat per localhost ), mitjançant la contrasenya securepwd .





create user 'testuser'@'localhost' identified by 'securepwd';

Si us connecteu a una base de dades que s'executa en una altra màquina (anomenada remotemc ), heu d’utilitzar el següent ( remotemc pot ser un nom d’amfitrió o una adreça IP):

create user 'testuser'@'remotemc' identified by 'securepwd';

Ara que s'han creat el nom d'usuari i la contrasenya, hem de concedir accés a la base de dades de mostra creada anteriorment.

grant all on sample.* to 'testuser'@'localhost';

O bé, si la base de dades és remota:

grant all on sample.* to 'testuser'@'remotemc';

Ara hauríeu de verificar que podeu connecteu-vos a la base de dades com l'usuari que acabeu de crear amb la mateixa contrasenya. També podeu executar les ordres següents després de connectar-vos per assegurar-vos que els permisos són correctes.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Configureu el camí de classe Java

Vegem ara els detalls de com connectar-se a MySQL des de Java. El primer pas és carregar el controlador de base de dades. Això es fa invocant el següent en un lloc adequat.

com esborrar esdeveniments al calendari de l'iPhone
Class.forName('com.mysql.jdbc.Driver');

El codi pot generar una excepció, de manera que podeu detectar-lo si teniu intenció de tractar-lo (com ara formatar el missatge d'error d'una interfície gràfica d'usuari).

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

És molt habitual invocar aquest codi en un bloc estàtic de la classe, de manera que el programa falla immediatament si no es pot carregar el controlador.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

Per descomptat, per poder trobar el controlador, cal invocar el programa amb el controlador JAR (descarregat i extret més amunt) inclòs al camí de classe de la manera següent.

java -cp mysql-connector-java - bin.jar: ...

Connexió a MySQL des de Java

Ara que hem reduït els detalls de la càrrega del controlador MySQL des de Java, connectem-nos a la base de dades. Una manera de crear una connexió de base de dades és utilitzar el fitxer DriverManager .

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

I què és el jdbcUrl ? Indica els detalls de la connexió, inclòs el servidor on es troba la base de dades, el nom d’usuari, etc. Aquí teniu un exemple d’URL per al nostre exemple.

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

Tingueu en compte que hem inclòs tots els paràmetres necessaris per a la connexió, inclòs el nom d'amfitrió ( localhost ), nom d'usuari i contrasenya. (Incloure una contrasenya com aquesta NO és una bona pràctica, vegeu les alternatives a continuació.)

Utilitzant això jdbcUrl , aquí teniu un programa complet per comprovar la connectivitat.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

Tingueu en compte que una connexió de base de dades és un recurs preciós en un programa i que s'ha de tancar correctament, tal com s'ha indicat anteriorment. El codi anterior, però, no tanca la connexió en cas d’excepció. Per tal de tancar la connexió en una sortida normal o anormal, utilitzeu el patró següent:

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}

Com s'ha indicat anteriorment, és una mala idea inserir la contrasenya a l'URL JDBC. Per especificar el nom d'usuari i la contrasenya directament, podeu utilitzar la següent opció de connexió.

per què el meu assistent de google no funciona
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

Consulta de la base de dades des de Java

Ara que s'ha establert la connexió a la base de dades, vegem com realitzar una consulta, com ara consultar la versió de la base de dades:

select version();

S'executa una consulta a Java de la següent manera. A Declaració es crea un objecte i s'executa una consulta mitjançant executeQuery () mètode que retorna a Resultat .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

Imprimiu la versió des de Resultat com segueix. 1 fa referència a l'índex de la columna dels resultats, començant per 1.

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

Després de processar els resultats, cal tancar els objectes.

rset.close();
stmt.close();

I això inclou tot el que hi ha a la connexió a MySQL des de Java i la realització d’una consulta senzilla.

Consulteu també el nostre Full de trucs d'ordres SQL .

Compartir Compartir Tweet Correu electrònic Està bé instal·lar Windows 11 en un PC incompatible?

Ara podeu instal·lar Windows 11 en equips antics amb el fitxer ISO oficial ... però és una bona idea fer-ho?

Llegiu a continuació
Temes relacionats
  • Programació
  • Java
  • SQL
Sobre l'autor Jay Sridhar(17 articles publicats) Més de Jay Sridhar

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us