Tags:

Cách lấy tên tất cả các database trong JDBC

Để lấy tên của tất cả các database tồn tại trong database server bằng JDBC, chúng ta có thể sử dụng getCatalogs() method từ DatabaseMetaData object với đoạn code đơn giản như sau:

DatabaseMetaData metadata = connection.getMetaData();
ResultSet result = metadata.getCatalogs();
 
while (result.next()) {
    String aDBName = result.getString(1);
    System.out.println(aDBName);
}

Và đây là một ví dụ hoàn chỉnh – một chương trình kết nối đến MySQL và in tên của tất cả các database tồn tại trong CSDL ra màn hình console.

package net.codejava.db;
 
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
 
public class ListDatabasesProgram {
 
    public static void main(String[] args) throws SQLException {
        String databaseURL = "jdbc:mysql://localhost:3306/";
        String username = "root";
        String password = "password";
         
        Connection connection = DriverManager.getConnection(databaseURL, username, password);
         
        DatabaseMetaData metadata = connection.getMetaData();
        ResultSet result = metadata.getCatalogs();
         
        while (result.next()) {
            String aDBName = result.getString(1);
            System.out.println(aDBName);
        }      
         
        connection.close();
    }
 
}

Lưu ý rằng database URL có thể trỏ đến tên của một database bất kỳ hoặc chỉ đơn giản là trỏ đến ROOT như trong ví dụ trên.

Ngoài ra chúng ta có thể lấy trực tiếp tên của các database thông qua câu lệnh được cung cấp sẵn, ví dụ như trong MySQL là “show databases”.

String sql = "show databases";
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery(sql);
 
while (result.next()) {
    String aDBName = result.getString(1);
    System.out.println(aDBName);
}

Nguồn

https://www.codejava.net/java-se/jdbc/how-to-list-names-of-all-databases-in-java

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x