120 votes

Quelle est la chaîne de connexion du pilote JDBC de MySQL ?

Je suis novice en matière de JDBC et j'essaie d'établir une connexion avec une base de données MySQL. J'utilise le pilote Connector/J, mais je ne trouve pas la chaîne de connexion JDBC pour ma base de données MySQL. Class.forName() méthode.

3voto

Rathore Points 91

Comme la réponse semble avoir déjà été donnée, il n'y a pas grand chose à ajouter mais je voudrais ajouter une chose aux réponses existantes. Voici la façon de charger la classe du pilote JDBC pour mysql.

com.mysql.jdbc.Driver

Mais ceci est maintenant déprécié. La nouvelle classe de pilote est maintenant

com.mysql.cj.jdbc.Driver

De plus, le pilote est automatiquement enregistré via le SPI et le chargement manuel de la classe du pilote est généralement inutile.

3voto

mise à jour pour mySQL 8 :

String jdbcUrl="jdbc:mysql://localhost:3306/youdatabase?useSSL=false&serverTimezone=UTC";

1voto

dalusC Points 23

mise à jour pour mySQL 8 :

String jdbcUrl="jdbc:mysql://localhost:3306/youdatabase?useSSL=false&serverTimezone=UTC" ;

Vérifiez si vos configurations Jdbc et URL sont correctes ou non en utilisant l'extrait de code suivant.

import java.sql.Connection;
import java.sql.DriverManager;

public class TestJdbc {

    public static void main(String[] args) {

        //db name:testdb_version001
        //useSSL=false (get rid of MySQL SSL warnings)

        String jdbcUrl = "jdbc:mysql://localhost:3306/testdb_version001?useSSL=false";
        String username="testdb";
        String password ="testdb";

        try{

            System.out.println("Connecting to database :" +jdbcUrl);
            Connection myConn =
                    DriverManager.getConnection(jdbcUrl,username,password);

            System.out.println("Connection Successful...!");

        }catch (Exception e){
            e.printStackTrace();
            //e.printStackTrace();
        }

    }

}

1voto

Lakindu Hewawasam Points 353

La méthode Class.forName() est utilisé pour enregistrer le pilote JDBC. Une chaîne de connexion est utilisée pour récupérer la connexion à la base de données.

La façon de récupérer la connexion à la base de données est indiquée ci-dessous. Idéalement, vous ne souhaitez pas créer plusieurs connexions à la base de données, mais plutôt limiter les connexions à une seule et réutiliser la même connexion. Par conséquent, utilisez le modèle singleton lors de la gestion des connexions à la base de données.

L'image ci-dessous montre une chaîne de connexion avec la récupération de la connexion :

public class Database {

    private String URL = "jdbc:mysql://localhost:3306/your_db_name"; //database url
    private String username = ""; //database username
    private String password = ""; //database password
    private static Database theDatabase = new Database(); 
    private Connection theConnection;

    private Database(){
        try{
              Class.forName("com.mysql.jdbc.Driver"); //setting classname of JDBC Driver
              this.theConnection = DriverManager.getConnection(URL, username, password);
        } catch(Exception ex){
            System.out.println("Error Connecting to Database: "+ex);
        }
    }

    public static Database getDatabaseInstance(){
        return theDatabase;
    }

    public Connection getTheConnectionObject(){
        return theConnection;
    }
}

1voto

QQQ Points 543

Voici un petit code de mon côté :)

conducteur nécessaire :

com.mysql.jdbc.Driver

télécharger : aquí (Plate-forme indépendante)

en une seule ligne :

jdbc:mysql://localhost:3306/db-name?user=user_name&password=db_password&useSSL=false

exemple de code :

public static void testDB(){
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/db-name?user=user_name&password=db_password&useSSL=false");
        if (connection != null) {
            Statement statement = connection.createStatement();
            if (statement != null) {
                ResultSet resultSet = statement.executeQuery("select * from test");
                if (resultSet != null) {
                    ResultSetMetaData meta = resultSet.getMetaData();
                    int length = meta.getColumnCount();
                    while(resultSet.next())
                    {
                        for(int i = 1; i <= length; i++){
                            System.out.println(meta.getColumnName(i) + ": " + resultSet.getString(meta.getColumnName(i)));
                        }
                    }
                    resultSet.close();
                }
                statement.close();
            }
            connection.close();
        }
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X