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


117

Je suis nouveau sur JDBC et j'essaye de me connecter à 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 Class.forName()méthode.


4
Pour commencer, le Class.forName()n'attend pas de chaîne de connexion JDBC, mais le nom de classe du pilote JDBC.
BalusC

Réponses:


114

En supposant que votre chauffeur est sur le chemin,

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, "username", "password");

1
comment trouvez-vous le chemin jdbc s'il n'est pas dans les variables d'environnement?
Roy Hinkley

1
Dans l'exemple de code, l'url JDBC a été codée en dur et n'a été recherchée dans aucune variable d'environnement
Jaime Hablutzel

67

Voici la documentation:

https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html

Une chaîne de connexion de base ressemble à ceci:

jdbc:mysql://localhost:3306/dbname

La chaîne class.forName est "com.mysql.jdbc.Driver", que vous pouvez trouver (modifier: maintenant sur la même page).


Les liens ci-dessus ne fonctionnent pas. Voici un nouveau lien de travail: dev.mysql.com/doc/connector-j/en/…
hexicle

1
Si j'ai trois propriétés à utiliser dans la chaîne de connexion, comment le regard de chaîne de connexion comme - par exemple: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

À partir de la documentation d'Oracle.

jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]

host: port est le nom d'hôte et le numéro de port de l'ordinateur hébergeant votre base de données. S'il n'est pas spécifié, les valeurs par défaut de l'hôte et du port sont 127.0.0.1 et 3306, respectivement.

database est le nom de la base de données à laquelle se connecter. S'il n'est pas spécifié, une connexion est établie sans base de données par défaut.

failover est le nom d'une base de données de secours (MySQL Connector / J prend en charge le basculement).

propertyName = propertyValue représente une liste de propriétés facultative, séparées par une esperluette. Ces attributs vous permettent de demander à MySQL Connector / J d'exécuter diverses tâches.


Si j'ai trois propriétés à utiliser dans la chaîne de connexion, comment le regard de chaîne de connexion comme - par exemple: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar C'est un URI, donc les propriétés doivent être séparées par des esperluettes ("&"), comme indiqué dans la spécification que j'ai citée.
Tim Sylvester

1
@ N00bPr0grammerjdbc:mysql://[host][:port]/[database]?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=UTF-8
ssc-hrep3

5

C'est très simple :

  1. Accédez à l'atelier MySQL et recherchez la base de données> Gérer les connexions
  2. vous verrez une liste de connexions. Cliquez sur la connexion à laquelle vous souhaitez vous connecter.
  3. Vous verrez des onglets autour de la connexion, de la gestion à distance, du profil du système. Cliquez sur l'onglet de connexion.
  4. votre URL est jdbc:mysql://<hostname>:<port>/<dbname>?prop1etc. où <hostname>et <port>sont données dans l'onglet de connexion. Ce sera principalement localhost: 3306. <dbname>se trouve sous l'onglet Profil système dans Nom du service Windows. La valeur par défaut sera principalement MySQL5 <x>où x est le numéro de version, par exemple. 56 pour MySQL5.6 et 55 pour MySQL5.5 etc. Vous pouvez également spécifier votre propre nom de service Windows pour vous connecter.
  5. Construisez l'url en conséquence et définissez l'url pour vous connecter.

5

Pour Mysql, la chaîne de connexion du pilote jdbc est com.mysql.jdbc.Driver . Utilisez le code suivant pour vous connecter: -

class DBConnection {
   private static Connection con = null;
   private static String USERNAME = "your_mysql_username";
   private static String PASSWORD = "your_mysql_password";
   private static String DRIVER = "com.mysql.jdbc.Driver";
   private static String URL = "jdbc:mysql://localhost:3306/database_name";

   public static Connection getDatabaseConnection(){
       Class.forName(DRIVER);
       return con = DriverManager.getConnection(URL,USERNAME,PASSWORD);
   }
}

3

mise à jour pour mySQL 8:

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


2

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

com.mysql.jdbc.Driver

Mais c'est désormais obsolète. 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 de pilote est généralement inutile.


0
String url = "jdbc:mysql://localhost:3306/dbname";
String user = "user";
String pass = "pass";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, user, pass);

3306 est le port par défaut de mysql.

Si vous utilisez Java 7, il n'est même pas nécessaire d'ajouter l' Class.forName("com.mysql.jdbc.Driver").newInstance ();instruction.Automatic Resource Management (ARM) est ajouté dans JDBC 4.1 qui vient par défaut dans Java 7.

Le format général d'une URL JDBC pour se connecter à un serveur MySQL est le suivant, les éléments entre crochets ([]) étant facultatifs:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] »
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

0

protocole // [hôtes] [/ base de données] [? propriétés]

Si vous n'avez aucune propriété, ignorez-la, ce sera comme

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql est le protocole 127.0.0.1: est l'hôte et 3306 est le numéro de port test est la base de données


0

cela dépend du service que vous utilisez.

si vous utilisez MySQL Workbench, ce sera quelque chose comme ceci:

jdbc: mysql: // "hôte": "numéro de port" /

String url = "jdbc:mysql://localhost:3306/";

Et bien sûr, ce sera différent si vous utilisez SSL / SSH.

Pour plus d'informations suivez le lien officiel de Jetbriens (idée intelliJ):

Connexion à une base de données #

https://www.jetbrains.com/help/idea/connecting-to-a-database.html


Configuration des connexions à la base de données #

https://www.jetbrains.com/help/idea/configuring-database-connections.html

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.