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; } }