JAVA中如何知道某项目使用什么数据库类型

文章目录

  • [1. 前言](#1. 前言)
  • [2. 先说结论](#2. 先说结论)
  • [3. 代码案例](#3. 代码案例)

1. 前言

  1. 最近在写第三方工具的时候,需要判断使用方项目具体使用了什么数据库类型,从而进行不一样的实现逻辑
  2. 当然可以让用户在YML中配置说明项目用什么数据库,但用户不一定填写正确。
  3. 因此需要想其他办法获取到该项目使用什么数据库类型。

2. 先说结论

  1. 在JDBC中其实有个东西叫DatabaseMetaData数据库源

  2. 其是由JDBC驱动程序实现的,用于提供底层数据源相关的信息。因此可以使用DatabaseMetaData接口提供的方法获取数据源信息。

  3. 可以获取到数据库是什么类型, 如下:

    java 复制代码
    DatabaseMetaData metaData = dataSource.getConnection().getMetaData();
    String dbType = metaData.getDatabaseProductName();

3. 代码案例

  1. 直接代码演示即可,DatabaseMetaData数据库源其实就提供底层数据源相关的信息,需要什么东西,从这里获取即可:

    java 复制代码
    @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());
        }
     }
相关推荐
有想法的py工程师1 分钟前
PostgreSQL 在AWS的 T 系列实例上的性能陷阱
数据库·postgresql·aws
m0_746752302 分钟前
bootstrap怎么给表格添加固定表头效果
jvm·数据库·python
justjinji2 分钟前
JavaScript 数组引用陷阱与“破纪录”问题的正确解法
jvm·数据库·python
juniperhan2 分钟前
Flink 系列第16篇:Flink 核心数据类型类详解(POJO、Row、Tuple)
java·大数据·数据仓库·分布式·flink
m0_674294643 分钟前
mysql如何通过yum源快速安装_mysql官方yum安装教程
jvm·数据库·python
justjinji4 分钟前
如何在Node.js中封装通用的MongoDB CRUD操作层_基于原生驱动的DAO层设计模式
jvm·数据库·python
yyk的萌5 分钟前
Spring AI + 智谱大模型实战:打造有记忆功能的智能天气助手
java·人工智能·spring·agent·spring ai
梦想的旅途27 分钟前
企微自动化办公:实现外部群聊的高级交互逻辑
运维·数据库·自动化·企业微信·rpa
abc123456sdggfd8 分钟前
php怎么实现API网关聚合_php如何将多个微服务接口合并响应
jvm·数据库·python
被开发耽误的大厨8 分钟前
5、Integer缓存池里同一个对象指的是什么?Integer 和String 内存结构逻辑完全一样?
android·java·哈希算法