Was ist die MySQL JDBC-Treiberverbindungszeichenfolge?


117

Ich bin neu bei JDBC und versuche, eine Verbindung zu einer MySQL-Datenbank herzustellen. Ich verwende den Connector / J-Treiber, kann jedoch die JDBC-Verbindungszeichenfolge für meine Class.forName()Methode nicht finden.


4
Zu Beginn Class.forName()erwartet das keine JDBC-Verbindungszeichenfolge, sondern den Namen der JDBC-Treiberklasse.
BalusC

Antworten:


114

Angenommen, Ihr Fahrer ist auf dem Weg,

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

1
Wie finden Sie den JDBC-Pfad, wenn er nicht in Umgebungsvariablen enthalten ist?
Roy Hinkley

1
Im Beispielcode wurde die JDBC-URL fest codiert und in keiner Umgebungsvariablen gesucht
Jaime Hablutzel

67

Hier ist die Dokumentation:

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

Eine grundlegende Verbindungszeichenfolge sieht folgendermaßen aus:

jdbc:mysql://localhost:3306/dbname

Die Zeichenfolge class.forName lautet "com.mysql.jdbc.Driver", die Sie finden können (bearbeiten: jetzt auf derselben Seite).


Die obigen Links funktionieren nicht. Hier ist ein neuer Arbeitslink: dev.mysql.com/doc/connector-j/en/…
Hexicle

1
Wenn ich drei Eigenschaften in der Verbindungszeichenfolge zu verwenden, wie würde die Verbindungszeichenfolge aussehen wie - zum Beispiel: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

Aus den Orakel-Dokumenten ..

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

Host: Port ist der Hostname und die Portnummer des Computers, auf dem sich Ihre Datenbank befindet. Wenn nicht angegeben, sind die Standardwerte für Host und Port 127.0.0.1 bzw. 3306.

Datenbank ist der Name der Datenbank, zu der eine Verbindung hergestellt werden soll. Wenn nicht angegeben, wird eine Verbindung ohne Standarddatenbank hergestellt.

Failover ist der Name einer Standby-Datenbank (MySQL Connector / J unterstützt Failover).

propertyName = propertyValue repräsentiert eine optionale, durch kaufmännisches Und-Zeichen getrennte Liste von Eigenschaften. Mit diesen Attributen können Sie MySQL Connector / J anweisen, verschiedene Aufgaben auszuführen.


Wenn ich drei Eigenschaften in der Verbindungszeichenfolge zu verwenden, wie würde die Verbindungszeichenfolge aussehen wie - zum Beispiel: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar Da es sich um eine URI handelt, sollten die Eigenschaften durch kaufmännisches Und ("&") getrennt werden, wie in der von mir angegebenen Spezifikation angegeben.
Tim Sylvester

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

5

Es ist sehr einfach :

  1. Gehen Sie zur MySQL-Workbench und suchen Sie nach Datenbank> Verbindungen verwalten
  2. Sie sehen eine Liste der Verbindungen. Klicken Sie auf die Verbindung, zu der Sie eine Verbindung herstellen möchten.
  3. Sie sehen Registerkarten zu Verbindung, Fernverwaltung und Systemprofil. Klicken Sie auf die Registerkarte Verbindung.
  4. Ihre URL befindet sich jdbc:mysql://<hostname>:<port>/<dbname>?prop1usw., wo <hostname>und <port>wird auf der Registerkarte "Verbindung" angegeben. Meistens handelt es sich um "localhost: 3306". Die <dbname>Registerkarte " Systemprofil " finden Sie auf der Registerkarte "Systemprofil" im Windows- Dienstnamen . Die Standardeinstellung ist meistens MySQL5, <x>wobei x die Versionsnummer ist, z. 56 für MySQL5.6 und 55 für MySQL5.5 usw. Sie können Ihren eigenen Windows-Dienstnamen angeben, um auch eine Verbindung herzustellen.
  5. Konstruieren Sie die URL entsprechend und stellen Sie die URL für die Verbindung ein.

5

Für MySQL lautet die Verbindungszeichenfolge des JDBC- Treibers com.mysql.jdbc.Driver . Verwenden Sie den folgenden Code, um eine Verbindung herzustellen: -

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

Update für mySQL 8:

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


2

Da die Antwort bereits beantwortet zu sein scheint, gibt es nicht viel hinzuzufügen, aber ich möchte eine Sache zu den vorhandenen Antworten hinzufügen. Auf diese Weise wurde die Klasse für den JDBC-Treiber für MySQL geladen

com.mysql.jdbc.Driver

Aber das ist jetzt veraltet. Die neue Fahrerklasse ist jetzt

com.mysql.cj.jdbc.Driver

Außerdem wird der Treiber automatisch über das SPI registriert und ein manuelles Laden der Treiberklasse ist in der Regel nicht erforderlich.


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 ist der Standardport für MySQL.

Wenn Sie Java 7 verwenden, müssen Sie die Class.forName("com.mysql.jdbc.Driver").newInstance ();Anweisung nicht einmal hinzufügen. Das automatische Ressourcenmanagement (ARM) wird in JDBC 4.1 hinzugefügt, das standardmäßig in Java 7 enthalten ist.

Das allgemeine Format für eine JDBC-URL für die Verbindung mit einem MySQL-Server lautet wie folgt: Elemente in eckigen Klammern ([]) sind optional:

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

0

Protokoll // [Hosts] [/ Datenbank] [? Eigenschaften]

Wenn Sie keine Eigenschaften haben, ignorieren Sie es, dann wird es so sein

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql ist das Protokoll 127.0.0.1: ist der Host und 3306 ist die Portnummer Test ist die Datenbank


0

Dies hängt davon ab, welchen Dienst Sie verwenden.

Wenn Sie MySQL Workbench verwenden, wird es ungefähr so ​​aussehen:

jdbc: mysql: // "host": "port number" /

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

Und natürlich wird es anders sein, wenn Sie SSL / SSH verwenden.

Für weitere Informationen folgen Sie dem offiziellen Link von Jetbriens (IntelliJ Idee):

Verbindung zu einer Datenbank herstellen #

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


Datenbankverbindungen konfigurieren #

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.