Connexió Java-MySQL bàsica

De wikijoan
Salta a la navegació Salta a la cerca

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