Java Academy Logo

Java Academy

Establishing JDBC Database Connection

Establishing a reliable database connection is the first step in any JDBC application. Learn connection URLs, credentials management, and why connection pooling matters in production.

Connection URL Format

JDBC URLs follow the pattern jdbc:subprotocol:subname. Examples: jdbc:mysql://localhost:3306/shopdb jdbc:postgresql://localhost:5432/inventory jdbc:oracle:thin:@localhost:1521:ORCL

DriverManager Connection

String url = "jdbc:postgresql://localhost:5432/appdb";
Properties props = new Properties();
props.setProperty("user", "app_user");
props.setProperty("password", System.getenv("DB_PASSWORD"));
try (Connection conn = DriverManager.getConnection(url, props)) {
    System.out.println("Connected: " + conn.getMetaData().getDatabaseProductName());
}

Production Best Practices

  • Never hardcode passwords — use environment variables or secret managers.
  • Use connection pooling (HikariCP) instead of DriverManager in production.
  • Set connection timeouts and validation queries.
  • Use SSL/TLS for database connections in cloud environments.
  • Close connections promptly — prefer try-with-resources.

Frequently Asked Questions

Why not use DriverManager in production?

DriverManager creates a new physical connection for every call, which is slow and resource-intensive. Connection pools reuse connections efficiently.

Continue Learning