@Override
public int testDatasource(DTO dto) {
int result = 0;
String DB_URL = dto.getUrl();
String DB_USER = dto.getUsername();
String DB_PASSWORD = dto.getPassword();
//驱动
String jdbcClassName = dto.getDriverClassName();
//连接测试查询语句
String TEST_QUERY = dto.getConnectionTestQuery();
//如果查询语句为空则设置默认测试查询语句
if (StringUtils.isBlank(TEST_QUERY)) {
TEST_QUERY = "SELECT 1";
}
//链接最大存活时间
Integer MAX_LIFETIME = dto.getMaxLifetime();
//最小空闲连接
Integer MIN_IDLE = dto.getMinimumIdle();
//最大连接数
Integer MAX_POOL_SIZE = dto.getMaximumPoolSize();
//空闲连接超时时间
Integer IDLE_TIMEOUT = dto.getIdleTimeout();
//连接超时时间
Integer CONNECTION_TIMEOUT = dto.getConnectionTimeout();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 注册 JDBC 驱动器
// Class.forName("com.mysql.jdbc.Driver");
Class.forName(jdbcClassName);
// 设置连接属性
java.util.Properties config = new java.util.Properties();
config.setProperty("maxLifetime", String.valueOf(MAX_LIFETIME));
config.setProperty("minIdle", String.valueOf(MIN_IDLE));
config.setProperty("maximumPoolSize", String.valueOf(MAX_POOL_SIZE));
config.setProperty("idleTimeout", String.valueOf(IDLE_TIMEOUT));
config.setProperty("connectionTimeout", String.valueOf(CONNECTION_TIMEOUT));
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
// 创建 Statement 对象
stmt = conn.createStatement();
try {
// 执行查询
rs = stmt.executeQuery(TEST_QUERY);
// 处理结果集
// while (rs.next()) {
// //查询结果条数
// result = rs.getInt(1);
// }
if (rs.next()) {
System.out.println("数据库测试连接成功!");
result = 1;
} else {
System.out.println("数据库测试连接失败!");
result = 0;
}
} catch (SQLException e) {
e.printStackTrace();
throw new BusinessException(ResultVO.FAIL.getCode(), "SQL 查询语句执行出错,请检查查询语句是否正确!", e);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new BusinessException(ResultVO.FAIL.getCode(), "无法加载数据库驱动程序,请输入正确的驱动程序!", e);
} catch (SQLException e) {
e.printStackTrace();
throw new BusinessException(ResultVO.FAIL.getCode(), "无法连接到数据库,请输入正确的数据库信息!", e);
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
java—data source test connection
Guess you like
Origin blog.csdn.net/l_010/article/details/131244910
Recommended
Ranking