Jakie są parametry połączenia sterownika MySQL JDBC?


117

Jestem nowy w JDBC i próbuję nawiązać połączenie z bazą danych MySQL. Używam sterownika Connector / J, ale nie mogę znaleźć parametrów połączenia JDBC dla mojej Class.forName()metody.


4
Na początek Class.forName()nie oczekuje ciągu połączenia JDBC, ale nazwę klasy sterownika JDBC.
BalusC

Odpowiedzi:


114

Zakładając, że Twój kierowca jest na ścieżce,

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

1
jak znaleźć ścieżkę jdbc, jeśli nie ma jej w zmiennych środowiskowych?
Roy Hinkley,

1
W przykładowym kodzie adres URL JDBC został zakodowany na stałe, a nie przeszukany w żadnej zmiennej środowiskowej
Jaime Hablutzel

67

Oto dokumentacja:

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

Podstawowe parametry połączenia wyglądają następująco:

jdbc:mysql://localhost:3306/dbname

Ciąg class.forName to „com.mysql.jdbc.Driver”, który można znaleźć (edycja: teraz na tej samej stronie).


Powyższe linki nie działają. Oto nowy działający link: dev.mysql.com/doc/connector-j/en/…
hexicle,

1
Jeśli mam trzy właściwości do wykorzystania w ciągu połączenia, w jaki sposób wygląd jak ciąg połączenia - np: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

Z dokumentów Oracle ...

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

host: port to nazwa hosta i numer portu komputera obsługującego bazę danych. Jeśli nie zostanie określony, domyślne wartości hosta i portu to odpowiednio 127.0.0.1 i 3306.

baza danych to nazwa bazy danych, z którą chcesz się połączyć. Jeśli nie zostanie określony, nawiązywane jest połączenie bez domyślnej bazy danych.

przełączanie awaryjne to nazwa rezerwowej bazy danych (MySQL Connector / J obsługuje przełączanie awaryjne).

propertyName = propertyValue reprezentuje opcjonalną listę właściwości oddzielonych znakami ampersand. Te atrybuty umożliwiają polecenie MySQL Connector / J wykonywania różnych zadań.


Jeśli mam trzy właściwości do wykorzystania w ciągu połączenia, w jaki sposób wygląd jak ciąg połączenia - np: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar To identyfikator URI, więc właściwości powinny być oddzielone ampersandami („&”), jak wskazano w specyfikacji, którą zacytowałem.
Tim Sylvester

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

5

To bardzo proste :

  1. Przejdź do Środowiska pracy MySQL i wyszukaj Baza danych> Zarządzaj połączeniami
  2. zobaczysz listę połączeń. Kliknij połączenie, z którym chcesz się połączyć.
  3. Zobaczysz zakładki dotyczące połączenia, zdalnego zarządzania, profilu systemu. Kliknij kartę połączenia.
  4. Twój adres URL to jdbc:mysql://<hostname>:<port>/<dbname>?prop1itd., gdzie <hostname>i <port>są podane w zakładce połączenia. Będzie to głównie localhost: 3306. <dbname>będzie można znaleźć w zakładce Profil systemu w Nazwa usługi Windows. Domyślnie będzie to głównie MySQL5, <x>gdzie x to numer wersji, np. 56 dla MySQL5.6 i 55 dla MySQL5.5 itd. Możesz również określić własną nazwę usługi Windows, aby się połączyć.
  5. Skonstruuj odpowiednio adres URL i ustaw adres URL do połączenia.

5

W przypadku MySQL ciąg połączenia sterownika jdbc to com.mysql.jdbc.Driver . Użyj poniższego kodu, aby się połączyć: -

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

aktualizacja dla mySQL 8:

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


2

Ponieważ wydaje się, że odpowiedź została już udzielona, ​​nie ma wiele do dodania, ale chciałbym dodać jedną rzecz do istniejących odpowiedzi. To był sposób wczytywania klasy dla sterownika JDBC dla mysql

com.mysql.jdbc.Driver

Ale to jest teraz przestarzałe. Nowa klasa kierowcy jest teraz

com.mysql.cj.jdbc.Driver

Również kierowca jest automatycznie rejestrowany przez SPI, a ręczne ładowanie klasy kierowcy jest generalnie niepotrzebne.


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 to domyślny port dla mysql.

Jeśli używasz Java 7, nie ma potrzeby nawet dodawać Class.forName("com.mysql.jdbc.Driver").newInstance ();instrukcji. Automatyczne zarządzanie zasobami (ARM) zostało dodane w JDBC 4.1, które jest domyślnie dostępne w Javie 7.

Ogólny format adresu URL JDBC do łączenia się z serwerem MySQL jest następujący, przy czym elementy w nawiasach kwadratowych ([]) są opcjonalne:

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

0

protokół // [hosty] [/ baza danych] [? właściwości]

Jeśli nie masz żadnych właściwości, zignoruj ​​to, wtedy będzie jak

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql to protokół 127.0.0.1: to host, a 3306 to numer portu, test to baza danych


0

zależy to od usługi, z której korzystasz.

jeśli używasz MySQL Workbench, będzie to coś takiego:

jdbc: mysql: // "host": "numer portu" /

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

I oczywiście będzie inaczej, jeśli używasz SSL / SSH.

Aby uzyskać więcej informacji, kliknij oficjalny link Jetbriens (idea intelliJ):

Łączenie się z bazą danych #

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


Konfigurowanie połączeń z bazą danych #

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.