問題描述:
有時候,我們的網站需要适配不同的資料庫,且可能會同時使用時,我們需要根據不同的連接配接資料庫作出相應代碼或不同的查詢語句;
解決方式:
/**
* 判斷資料庫類型
* @return
* @throws SQLException
*/
public String getDataBaseType() throws SQLException {
//通過driverName是否包含關鍵字判斷
if (connection.getMetaData().getDriverName().toUpperCase()
.indexOf("MYSQL") != -1) {
return "MySql";
} else if (connection.getMetaData().getDriverName().toUpperCase()
.indexOf("SQL SERVER") != -1) {
//sqljdbc與sqljdbc4不同,sqlserver中間有空格
return "SqlServer";
}
return "-1";
}
注意事項:
有時候不同的jdbc擷取的DriverName并不相同,例如在sqljdbc4 裡SQL SERVER中間是有空格的,而老版本的sqljdbc裡DriverName是SQLSERVER沒有空格。