Connexió Java-MySQL bàsica
La revisió el 17:24, 23 maig 2022 per Joan (discussió | contribucions) (→Connexió al MySQL del docker)
Contingut
Driver de MySQL per a JAVA
escullo ubuntu Linux, 20.04 Connector/J 8.0.29
i descarreguem el fitxer mysql-connector-java_8.0.29-1ubuntu20.04_all.deb
Instal·lem:
$ sudo dpkg -i mysql-connector-java_8.0.29-1ubuntu20.04_all.deb
el jar ha quedat instal·lat aquí:
$ ls /usr/share/java/m* /usr/share/java/mysql-connector-java-8.0.29.jar
compilem:
$ javac MySQLConnectExample.java
es genera el MySQLConnectExample.class
Seguint el petit tutorial podem utilitzar l'opció -cp per tal de què cerqui el jar file, però a mi no m'ha sortit
-cp <class search path of directories and zip/jar files>
El que a mi m'ha funcionat:
$ export CLASSPATH=/usr/share/java/mysql-connector-java-8.0.29.jar:$CLASSPATH $ echo $CLASSPATH
i ara ja funciona:
$ java MySQLConnectExample Connected to the database municipis Connected to the database vestuari Connected to the database empresa
Codi MySQLConnectExample.java
Codi extret de:
3 maneres una mica diferents d'establir la connexió a 3 bases de dades diferents:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class MySQLConnectExample {
public static void main(String[] args) {
// creates three different Connection objects
Connection conn1 = null;
Connection conn2 = null;
Connection conn3 = null;
try {
// connect way #1
String url1 = "jdbc:mysql://localhost:3306/municipis";
String user = "alumne";
String password = "keiL2lai";
conn1 = DriverManager.getConnection(url1, user, password);
if (conn1 != null) {
System.out.println("Connected to the database municipis");
}
// connect way #2
String url2 = "jdbc:mysql://localhost:3306/vestuari?user=alumne&password=keiL2lai";
conn2 = DriverManager.getConnection(url2);
if (conn2 != null) {
System.out.println("Connected to the database vestuari");
}
// connect way #3
String url3 = "jdbc:mysql://localhost:3306/empresa";
Properties info = new Properties();
info.put("user", "alumne");
info.put("password", "keiL2lai");
conn3 = DriverManager.getConnection(url3, info);
if (conn3 != null) {
System.out.println("Connected to the database empresa");
}
} catch (SQLException ex) {
System.out.println("An error occurred. Maybe user/password is invalid");
ex.printStackTrace();
}
}
}
Connexió al MySQL del docker
$ docker start mysql_m02bd
$ docker inspect mysql_m02bd
"IPAddress": "172.17.0.2",
Canvio el meu codi de manera que apunti a aquest altre servidor de MySQL, que està dins del docker:
String url1 = "jdbc:mysql://172.17.0.2:3306/municipis";
$ java MySQLConnectExample Connected to the database municipis Connected to the database vestuari Connected to the database empresa
Generar i executar el jar file
Creem el fitxer manifest.txt:
Manifest-Version: 1.0 Created-By: Joan Main-Class: MySQLConnectExample Class-Path: /usr/share/java/mysql-connector-java-8.0.29.jar
Generem el jar:
$ jar cfm MySQLConnectExample.jar manifest.txt MySQLConnectExample.class
A partir del jar executem l'aplicació:
$ java -jar MySQLConnectExample.jar Connected to the database municipis Connected to the database vestuari Connected to the database empresa
creat per Joan Quintana Compte, maig 2022