All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.lingkang.finalsql.utils.DataSourceUtils Maven / Gradle / Ivy

The newest version!
package top.lingkang.finalsql.utils;

import top.lingkang.finalsql.constants.DbType;
import top.lingkang.finalsql.error.FinalException;

import javax.sql.DataSource;
import java.sql.Connection;

/**
 * @author lingkang
 * Created by 2022/4/11
 */
public class DataSourceUtils {

    public static DbType getDataType(DataSource dataSource) throws FinalException {
        Connection connection = null;
        try {
            connection = dataSource.getConnection();
            String name = connection.getMetaData().getDriverName();
            if (CommonUtils.isEmpty(name)) {
                throw new FinalException("配置方言失败:未识别的jdbc连接驱动");
            }
            name = name.toLowerCase();
            if (name.contains("mysql")) {
                return DbType.MYSQL;
            } else if (name.contains("postgresql")) {
                return DbType.POSTGRESQL;
            } else if (name.contains("sqlite")) {
                return DbType.SQLITE;
            } else if (name.contains("h2")) {
                return DbType.H2;
            }
        } catch (Exception e) {
            throw new FinalException(e);
        } finally {
            CommonUtils.close(connection);
        }
        return DbType.OTHER;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy