MySQL JDBC sürücüsü bağlantı dizesi nedir?


117

JDBC'de yeniyim ve bir MySQL veritabanına bağlantı kurmaya çalışıyorum. Connector / J sürücüsünü kullanıyorum, ancak Class.forName()yöntemim için JDBC bağlantı dizesini bulamıyorum .


4
Başlamak için, Class.forName()bir JDBC bağlantı dizesi beklemiyor, ancak JDBC sürücü sınıfı adı bekliyor.
BalusC

Yanıtlar:


114

Sürücünüzün yolda olduğunu varsayarsak,

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

1
ortam değişkenlerinde değilse jdbc yolunu nasıl bulursunuz?
Roy Hinkley

1
Örnek kodda JDBC url'si kodlanmış, herhangi bir ortam değişkeninde
aranmamış

67

İşte belgeler:

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

Temel bir bağlantı dizesi şöyle görünür:

jdbc:mysql://localhost:3306/dbname

Class.forName dizesi, bulabileceğiniz "com.mysql.jdbc.Driver" dır (edit: şimdi aynı sayfada).


Yukarıdaki bağlantılar çalışmıyor. İşte yeni bir çalışan bağlantı: dev.mysql.com/doc/connector-j/en/…
hexicle

1
Ben bağlantı dizesinde kullanmak üç özelliği varsa, nasıl olur gibi bağlantı dizesi görünüm - örneğin: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

Oracle belgelerinden ..

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

host: port , veritabanınızı barındıran bilgisayarın ana bilgisayar adı ve bağlantı noktası numarasıdır. Belirtilmezse, ana bilgisayar ve bağlantı noktasının varsayılan değerleri sırasıyla 127.0.0.1 ve 3306'dır.

veritabanı , bağlanılacak veritabanının adıdır. Belirtilmezse, varsayılan veritabanı olmadan bağlantı yapılır.

yük devretme , yedek bir veritabanının adıdır (MySQL Bağlayıcısı / J, yük devretmeyi destekler).

propertyName = propertyValue , isteğe bağlı, ve işareti ile ayrılmış bir özellikler listesini temsil eder. Bu öznitelikler, MySQL Connector / J'ye çeşitli görevleri gerçekleştirmesi için talimat vermenizi sağlar.


Ben bağlantı dizesinde kullanmak üç özelliği varsa, nasıl olur gibi bağlantı dizesi görünüm - örneğin: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar Bu bir URI olduğundan, alıntı yaptığım spesifikasyonda belirtildiği gibi özellikler ve işaretleriyle ("&") ayrılmalıdır.
Tim Sylvester

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

5

O çok basit :

  1. MySQL tezgahına gidin ve Veritabanı> Bağlantıları Yönet'i arayın
  2. bir bağlantı listesi göreceksiniz. Bağlanmak istediğiniz bağlantıya tıklayın.
  3. Bağlantı, uzaktan yönetim, sistem profili etrafında bir sekme göreceksiniz. Bağlantı sekmesine tıklayın.
  4. Url'nizde olduğu jdbc:mysql://<hostname>:<port>/<dbname>?prop1vb nerede <hostname>ve <port>çoğunlukla localhost olacak bağlantı tab.It verilmiştir: 3306. <dbname>Windows Hizmet Adı Sistem Profili sekmesi altında bulunacaktır. Varsayılan çoğunlukla MySQL5 olacaktır <x>, burada x sürüm numarasıdır, ör. MySQL5.6 için 56 ve MySQL5.5 için 55 vb. Bağlanmak için kendi Windows Hizmet adınızı da belirtebilirsiniz.
  5. URL'yi buna göre oluşturun ve bağlanacak url'yi ayarlayın.

5

Mysql için jdbc Sürücü bağlantı dizesi com.mysql.jdbc.Driver'dır . Bağlanmak için aşağıdaki kodu kullanın: -

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

mySQL 8 için güncelleme:

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


2

Cevap zaten cevaplanmış gibi göründüğü için eklenecek çok şey yok ama mevcut cevaplara bir şey eklemek istiyorum. Bu, mysql için JDBC sürücüsü için sınıf yükleme yoluydu

com.mysql.jdbc.Driver

Ancak bu artık kullanımdan kaldırılmıştır. Yeni sürücü sınıfı artık

com.mysql.cj.jdbc.Driver

Ayrıca sürücü, SPI aracılığıyla otomatik olarak kaydedilir ve sürücü sınıfının manuel olarak yüklenmesi genellikle gereksizdir.


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 mysql için varsayılan bağlantı noktasıdır.

Java 7 kullanıyorsanız, Class.forName("com.mysql.jdbc.Driver").newInstance ();deyimi eklemenize bile gerek yoktur . Java 7'de varsayılan olarak gelen JDBC 4.1'e Otomatik Kaynak Yönetimi (ARM) eklenir.

Bir MySQL sunucusuna bağlanmak için bir JDBC URL'sinin genel biçimi aşağıdaki gibidir, köşeli parantez ([]) içindeki öğeler isteğe bağlıdır:

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

0

protokol // [barındıran] [/ veritabanı] [? özellikleri]

Herhangi bir özelliğiniz yoksa, görmezden gelin o zaman gibi olacak

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql, 127.0.0.1 protokolüdür: ana bilgisayar ve 3306, bağlantı noktası numarası testi veritabanıdır


0

hangi hizmeti kullandığınıza bağlıdır.

MySQL Workbench kullanıyorsanız, bunun gibi bir şey olabilir:

jdbc: mysql: // "ana bilgisayar": "bağlantı noktası numarası" /

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

Ve tabii ki SSL / SSH kullanıyorsanız farklı olacaktır.

Daha fazla bilgi için Jetbriens'in resmi bağlantısını takip edin (intelliJ fikri):

Veritabanına bağlanma #

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


Veritabanı bağlantılarını yapılandırma #

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.