Chuỗi kết nối trình điều khiển JDBC của MySQL là gì?


117

Tôi chưa quen với JDBC và tôi đang cố gắng tạo kết nối đến cơ sở dữ liệu MySQL. Tôi đang sử dụng trình điều khiển Connector / J, nhưng tôi không thể tìm thấy chuỗi kết nối JDBC cho Class.forName()phương thức của mình .


4
Để bắt đầu, Class.forName()không mong đợi một chuỗi kết nối JDBC, nhưng tên lớp trình điều khiển JDBC.
BalusC

Câu trả lời:


114

Giả sử trình điều khiển của bạn đang trên đường,

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

1
Làm thế nào để bạn tìm thấy đường dẫn jdbc nếu nó không nằm trong các biến môi trường?
Roy Hinkley

1
Trong mã mẫu, url JDBC đã được mã hóa cứng, không được tìm kiếm trong bất kỳ biến môi trường nào
Jaime Hablutzel

67

Đây là tài liệu:

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

Một chuỗi kết nối cơ bản trông như:

jdbc:mysql://localhost:3306/dbname

Chuỗi class.forName là "com.mysql.jdbc.Driver", mà bạn có thể tìm thấy (chỉnh sửa: bây giờ trên cùng một trang).


Các liên kết ở trên không hoạt động. Đây là một liên kết hoạt động mới: dev.mysql.com/doc/connector-j/en/ từ
hexicle 23/2/2016

1
Nếu tôi có ba thuộc tính để sử dụng trong chuỗi kết nối, làm thế nào sẽ là chuỗi kết nối cái nhìn như thế nào - ví dụ như: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
n00b Pr0grammer

17
"jdbc:mysql://localhost"

Từ các tài liệu tiên tri ..

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

máy chủ: cổng là tên máy chủ và số cổng của máy tính lưu trữ cơ sở dữ liệu của bạn. Nếu không được chỉ định, các giá trị mặc định của máy chủ và cổng lần lượt là 127.0.0.1 và 3306.

cơ sở dữ liệu là tên của cơ sở dữ liệu để kết nối. Nếu không được chỉ định, một kết nối được tạo mà không có cơ sở dữ liệu mặc định.

failover là tên của cơ sở dữ liệu dự phòng (MySQL Connector / J hỗ trợ chuyển đổi dự phòng).

propertyName = propertyValue đại diện cho một danh sách các thuộc tính tùy chọn, được phân tách bằng dấu và. Các thuộc tính này cho phép bạn hướng dẫn MySQL Connector / J thực hiện các tác vụ khác nhau.


Nếu tôi có ba thuộc tính để sử dụng trong chuỗi kết nối, làm thế nào sẽ là chuỗi kết nối cái nhìn như thế nào - ví dụ như: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
n00b Pr0grammer

@B Pavan Kumar Đó là một URI, vì vậy các thuộc tính nên được phân tách bằng ký hiệu ("&"), như được chỉ ra trong thông số kỹ thuật tôi đã trích dẫn.
Tim Sylvester

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

5

Nó rất đơn giản:

  1. Đi tới bàn làm việc của MySQL và tra cứu Cơ sở dữ liệu> Quản lý kết nối
  2. bạn sẽ thấy một danh sách các kết nối. Nhấp vào kết nối bạn muốn kết nối.
  3. Bạn sẽ thấy một tab xung quanh kết nối, quản lý từ xa, hồ sơ hệ thống. Bấm vào tab kết nối.
  4. url của bạn là jdbc:mysql://<hostname>:<port>/<dbname>?prop1vv ở đâu <hostname><port>được đưa ra trong tab kết nối. Nó chủ yếu sẽ là localhost: 3306. <dbname>sẽ được tìm thấy trong tab Hồ sơ hệ thống trong Tên dịch vụ Windows. Mặc định chủ yếu sẽ là MySQL5 <x>trong đó x là số phiên bản, vd. 56 cho MySQL5.6 và 55 cho MySQL5.5, v.v. Bạn có thể chỉ định tên Dịch vụ Windows của riêng mình để kết nối.
  5. Xây dựng url phù hợp và đặt url để kết nối.

5

Đối với Mysql, chuỗi kết nối Trình điều khiển jdbc là com.mysql.jdbc.Driver . Sử dụng mã sau đây để được kết nối: -

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

cập nhật cho myQuery 8:

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


2

Vì câu trả lời dường như đã được trả lời, không có gì nhiều để thêm nhưng tôi muốn thêm một điều vào các câu trả lời hiện có. Đây là cách tải lớp cho trình điều khiển JDBC cho mysql

com.mysql.jdbc.Driver

Nhưng điều này bây giờ không được chấp nhận. Lớp trình điều khiển mới bây giờ

com.mysql.cj.jdbc.Driver

Ngoài ra, trình điều khiển được đăng ký tự động thông qua SPI và tải thủ công của lớp trình điều khiển nói chung là không cần thiết.


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 là cổng mặc định cho mysql.

Nếu bạn đang sử dụng Java 7 thì không cần phải thêm Class.forName("com.mysql.jdbc.Driver").newInstance ();câu lệnh. Quản lý tài nguyên tự động (ARM) được thêm vào trong JDBC 4.1, mặc định trong Java 7.

Định dạng chung cho URL JDBC để kết nối với máy chủ MySQL như sau, với các mục trong ngoặc vuông ([]) là tùy chọn:

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

0

giao thức // [hosts] [/ cơ sở dữ liệu] [? property]

Nếu bạn không có bất kỳ thuộc tính nào bỏ qua nó thì nó sẽ giống như

jdbc: mysql: //127.0.0.1: 3306 / bài kiểm tra

jdbc: mysql là giao thức 127.0.0.1: là máy chủ lưu trữ và 3306 là kiểm tra số cổng là cơ sở dữ liệu


0

nó phụ thuộc vào dịch vụ bạn đang sử dụng.

Nếu bạn sử dụng MySQL Workbench, nó sẽ giống như thế này:

jdbc: mysql: // "máy chủ": "số cổng" /

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

Và tất nhiên sẽ khác nếu bạn sử dụng SSL / SSH.

Để biết thêm thông tin, hãy theo liên kết chính thức của Jetbriens (ý tưởng intelliJ):

Kết nối với cơ sở dữ liệu #

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


Định cấu hình kết nối cơ sở dữ liệu #

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.