package com.wgcloud.config;
|
|
import org.apache.ibatis.mapping.DatabaseIdProvider;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Component;
|
|
import javax.sql.DataSource;
|
import java.sql.Connection;
|
import java.sql.SQLException;
|
import java.util.Properties;
|
|
/**
|
* @version v3.3
|
* @ClassName:MyDatabaseIdProvider.java
|
* @author: http://www.wgstart.com
|
* @date: 2021年12月23日
|
* @Description: 自定义一个数据库标识提供类,实现DatabaseIdProvider接口
|
* @Copyright: 2019-2021 wgcloud. All rights reserved.
|
*/
|
@Component
|
public class MyDatabaseIdProvider implements DatabaseIdProvider {
|
|
private static Logger logger = LoggerFactory.getLogger(MyDatabaseIdProvider.class);
|
|
@Override
|
public void setProperties(Properties p) {
|
logger.info(p.getProperty("MySQL"));
|
}
|
|
/**
|
* 用于mybatis里的时间查询条件使用,没有其他用途
|
*
|
* @param dataSource
|
* @return
|
* @throws SQLException
|
*/
|
@Override
|
public String getDatabaseId(DataSource dataSource) throws SQLException {
|
Connection conn = dataSource.getConnection();
|
String dbName = conn.getMetaData().getDatabaseProductName();
|
String dbAlias = "";
|
switch (dbName) {
|
case "MySQL":
|
dbAlias = "mysql";
|
break;
|
case "PostgreSQL":
|
dbAlias = "postgresql";
|
break;
|
case "MariaDB":
|
dbAlias = "mysql";
|
break;
|
case "Oracle":
|
dbAlias = "oracle";
|
break;
|
default:
|
break;
|
}
|
return dbAlias;
|
}
|
}
|