獲取當前jdbc連線的資料庫名稱

2020-09-19 16:00:58

今天在工作中遇到一個業務:「在jdbc已經與資料庫建立連線的情況下,需要在業務程式碼中獲取到不同型別資料庫的庫名。」像大多數人一樣,我首先想到的是通過jdbc連線的url來獲取資料庫名,例如mysql的jdbc連線url

jdbc:mysql://localhost:3306/test

oracle的jdbc連線url

jdbc:oracle:thin:@127.0.0.1:1521:orcl

顯然,通過jdbc連線url是可以獲取到資料庫名的,但是通過這種方式獲取庫名首先需要通過不同的方式擷取字串,其次如果換做其他型別的如MongoDB、HBase等資料庫,還要通過各自的擷取方式來獲取,因此這種方式很麻煩。於是乎,通過百度,搜到的大部分都是通過「show databases」查詢出所有的資料庫名,並不能解決以上業務。最終,總算找到了一個簡單的方法,使用jdbc通過以下sql直接進行查詢,目前只找到了獲取mysql和oracle資料庫名的方式

1.MySQL獲取當前連線資料庫名稱

select database();

2.Oracle獲取當前連線資料庫名稱

select name from v$database;