我正在使用 JDBC API。我使用 JDBC 模板创建了数据库连接。我正在尝试检查连接数据库中给定表的存储引擎类型。我的目的是检查引擎类型是否为 NDB。
这可以使用以下 MySQL 查询来完成: SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
但是,我需要找到一种不使用查询的方法来执行此操作,因为在某些情况下,由于访问权限限制(例如,访问时),此 Select-query 将不起作用information_schema
。
有没有其他方法可以实现这个目标?(通过使用 JDBC 驱动程序/JDBC 池属性/任何其他方式..)
这是我使用的代码块:
JdbcTemplate jdbcTemplateGetEngine = JdbcUtils.getNewTemplate();
String engine = jdbcTemplateGetEngine.withTransaction(template ->
template.fetchSingleRecord(GET_ENGINE_TYPE_OF_TABLE,
(resultSet, rowNumber) -> resultSet.getString(ENGINE),
preparedStatement -> {
preparedStatement.setString(1, DBname);
preparedStatement.setString(2, IDN_CONFIG_RESOURCE);
}
)
);