我正在使用spring Jdbc,如何不通过Connection接口从jdbc模板检索数据库供应商名称。 Spring是否提供了一个API,可以提供一个持有数据库名称的枚举,以便我可以将代码与硬编码字符串值解耦
您可以在DatabaseMetaData文档中找到所需的信息。
String vendor = jdbcTemplate.getDataSource().getConnection().getMetaData().getDatabaseProductName();
更新!
根据M. Deinum的建议,您可以使用ConnectionCallback,因此您无需关闭连接或进行连接。
例如:
private String getProduct() {
return this.jdbcTemplate.execute(new ConnectionCallback() {
@Override
public String doInConnection(Connection connection) throws SQLException,
DataAccessException {
return connection.getMetaData().getDatabaseProductName();
}
});
}
实际上,这很危险,因为您正在打开一个非托管连接。相反,您应该使用ConnectionCallback或再次关闭连接。
好吧,这是一个如何找到他想要的信息的示例。当然必须对连接进行良好的管理,但这不是这里的问题。问题是在哪里可以找到此信息,我认为您无需使用Connecti