JAVA中如何知道某项目使用什么数据库类型
1. 前言
- 最近在写第三方工具的时候,需要判断使用方项目具体使用了什么数据库类型,从而进行不一样的实现逻辑。
- 当然可以让用户在YML中配置说明项目用什么数据库,但用户不一定填写正确。
- 因此需要想其他办法获取到该项目使用什么数据库类型。
2. 先说结论
- 在JDBC中其实有个东西叫DatabaseMetaData数据库源
- 其是由JDBC驱动程序实现的,用于提供底层数据源相关的信息。因此可以使用DatabaseMetaData接口提供的方法获取数据源信息。
- 可以获取到数据库是什么类型, 如下:
DatabaseMetaData metaData = dataSource.getConnection().getMetaData();
String dbType = metaData.getDatabaseProductName();
3. 代码案例
- 直接代码演示即可,DatabaseMetaData数据库源其实就提供底层数据源相关的信息,需要什么东西,从这里获取即可:
@Component
public class test {
@Autowired
private DataSource dataSource;
@Scheduled(fixedRate = 5000)
public void test3() throws Exception{
DatabaseMetaData databaseMetaData = dataSource.getConnection().getMetaData();
System.out.println("数据库URL:" + databaseMetaData.getURL());
System.out.println("数据库用户名:" + databaseMetaData.getUserName());
System.out.println("数据库产品名:" + databaseMetaData.getDatabaseProductName());
System.out.println("数据库产品版本:" + databaseMetaData.getDatabaseProductVersion());
System.out.println("数据库SQL关键字:" + databaseMetaData.getSQLKeywords());
}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/936844.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!