Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lấy tên cơ sở dữ liệu mysql được kết nối (JDBC)

Có lẽ cách đơn giản nhất để lấy tên cơ sở dữ liệu từ chính đối tượng Kết nối JDBC là thông qua getCatalog() phương pháp:

Kết nối # getCatalog ()

Tuy nhiên, như Konstantin đã chỉ ra trong nhận xét của mình bên dưới, giá trị đó sẽ không thay đổi nếu cơ sở dữ liệu MySQL hiện tại được thay đổi bằng cách phát hành USE dbname tuyên bố.

getCatalog() vẫn có thể hữu ích trong một ứng dụng

  • không thay đổi cơ sở dữ liệu hoặc
  • thực hiện những điều "Cách JDBC" bằng cách sử dụng setCatalog() để thay đổi cơ sở dữ liệu hiện tại,

nhưng đối với MySQL, sử dụng SELECT DATABASE() có vẻ an toàn hơn về tổng thể.

Cũng lưu ý rằng sự khác biệt tiềm ẩn này giữa getCatalog() và cơ sở dữ liệu hiện tại thực sự phụ thuộc vào hành vi của trình điều khiển JDBC cụ thể. Vì tò mò, tôi đã thử một cái gì đó tương tự với Microsoft JDBC Driver 4.0 cho SQL Server và .getCatalog() thực sự đã biết về sự thay đổi đối với cơ sở dữ liệu hiện tại ngay lập tức sau khi chạy USE dbname tuyên bố. Đó là, mã

String connectionUrl = "jdbc:sqlserver://localhost:52865;"
        + "databaseName=myDb;" + "integratedSecurity=true";
try (Connection con = DriverManager.getConnection(connectionUrl)) {
    System.out.println(String.format(
            "getCatalog() returns: %s", 
            con.getCatalog()));
    try (Statement s = con.createStatement()) {
        System.out.println("           Executing: USE master");
        s.execute("USE master");
    }
    System.out.println(String.format(
            "getCatalog() returns: %s", 
            con.getCatalog()));
} catch (Exception e) {
    e.printStackTrace(System.out);
}

tạo ra các kết quả sau:

getCatalog() returns: myDb
           Executing: USE master
getCatalog() returns: master


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm toàn văn bản với InnoDB trong MySQL

  2. Chọn một tên trường gồm hai từ trong mySQL, được gọi từ PHP

  3. Trình kết nối C ++ / mysql - tham chiếu không xác định cho get_driver_instance - đã thử những thứ dễ dàng

  4. CHỌN nơi giá trị hàng chứa chuỗi MySQL

  5. Cách nối hai bảng với ssp.class.php