使用 JDBC 获取 MySQL 查询的状态消息(包括执行时间)

Sar*_*esh 2 java mysql sql database jdbc

假设我正在 MySQL 中实现一个查询

Create Database newdb;
Run Code Online (Sandbox Code Playgroud)

然后数据库响应结果

database created in 0.05 sec
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何使用 JDBC 在 Java 程序中获取此消息?

Gor*_*son 5

以下代码对我有用

try (Statement s = conn.createStatement()) {
    s.execute("SET PROFILING=1;");
    s.execute("CREATE DATABASE newdb;");
    try (ResultSet rs = s.executeQuery("SHOW PROFILES;")) {
        rs.next();
        System.out.printf(
                "     Statement: %s%nExecution time: %f seconds.%n", 
                rs.getString("Query"), 
                rs.getDouble("Duration"));
    }
    s.execute("SET PROFILING=0;");
}
Run Code Online (Sandbox Code Playgroud)

控制台输出是

     Statement: CREATE DATABASE newdb
Execution time: 0.002014 seconds.
Run Code Online (Sandbox Code Playgroud)