Mysql
 sql >> база данни >  >> RDS >> Mysql

Вземете свързаното име на база данни mysql (JDBC)

Вероятно най-лесният начин да получите името на базата данни от самия обект JDBC Connection е чрез getCatalog() метод:

Connection#getCatalog()

Въпреки това, както Константин посочи в коментара си по-долу, тази стойност няма да се промени, ако текущата база данни MySQL бъде променена чрез издаване на USE dbname изявление.

getCatalog() все още може да бъде полезен в приложение, което

  • не променя бази данни, или
  • върши нещата "The JDBC Way", като използва setCatalog() за да промените текущата база данни,

но за MySQL, използвайки SELECT DATABASE() като цяло изглежда по-безопасно.

Имайте предвид също, че това потенциално несъответствие между getCatalog() и действителната текуща база данни зависи от поведението на конкретния JDBC драйвер. От любопитство опитах нещо подобно с Microsoft JDBC Driver 4.0 за SQL Server и .getCatalog() наистина беше наясно с промяната в текущата база данни веднага след стартиране на USE dbname изявление. Тоест кодът

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);
}

даде следните резултати:

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. Проблем при създаването на външни ключове в mySql

  2. Импортиране на стара папка с данни на mysql

  3. Mysql Codeigniter Active Record - Как да направя заявка where_in и да върна правилния ред на резултатите?

  4. Проверете за валидно име на SQL колона

  5. MySQL - извличане на стойност от друга таблица, ако колоната е нула