【Bug经验分享】Postgresql 项目链接不上,JDBC及Datasource可以连接,Navicat也可连接
文章目录
- CMD-telnet测试
- Datasource 形式测试
- JDBC 形式测试
- 问题解决
更多相关内容可查看
CMD-telnet测试
telnet 127.0.0.1 5432
Datasource 形式测试
package cfca.hke.bankcomm.test;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class DatabaseConnectionTest {
public static void main(String[] args) {
// 配置 HikariCP 连接池
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql://127.0.0.1:5432/scdb");
config.setUsername("postgres");
config.setPassword("123456");
// 设置其他可选配置
config.setMaximumPoolSize(10);
config.setMinimumIdle(2);
config.setIdleTimeout(30000);
config.setMaxLifetime(1800000);
// 创建 DataSource
DataSource dataSource = new HikariDataSource(config);
// 测试连接
try (Connection connection = dataSource.getConnection()) {
if (connection != null) {
System.out.println("数据库连接成功!");
}
} catch (SQLException e) {
System.err.println("数据库连接失败: " + e.getMessage());
}
}
}
JDBC 形式测试
package cfca.hke.bankcomm.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class PostgreSQLConnectionTest {
// JDBC 连接信息
private static final String JDBC_URL = "jdbc:postgresql://127.0.0.1:5432/scdb";
private static final String JDBC_USERNAME = "postgres";
private static final String JDBC_PASSWORD = "123456";
public static void main(String[] args) {
Connection connection = null;
try {
// 1. 加载 JDBC 驱动
Class.forName("org.postgresql.Driver");
// 2. 建立数据库连接
connection = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD);
System.out.println("数据库连接成功!");
// 3. 执行一个简单的查询
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT 1");
// 4. 处理查询结果
if (resultSet.next()) {
System.out.println("测试查询结果: " + resultSet.getInt(1));
}
} catch (Exception e) {
System.err.println("数据库连接失败!");
e.printStackTrace();
} finally {
// 5. 关闭连接
if (connection != null) {
try {
connection.close();
System.out.println("数据库连接已关闭。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
问题解决
l利用上述方式都发现无法解决,查看conf文件的最大连接数,我的项目中给了200,默认是100,所以导致链接不上
修改最大链接数
重启服务Win+R,输入services.msc
找到postgre服务,重新启动
navicat测试