Use JDBC
SynxDB Elastic is a cloud-native database based on the Greenplum/PostgreSQL 14.4 kernel, featuring a separation of storage and compute. Because it is compatible with Greenplum and PostgreSQL, JDBC access methods are the same as those for Greenplum/PostgreSQL.
This guide explains how to connect to SynxDB Elastic using JDBC and perform database operations.
Prerequisites
Before connecting to SynxDB Elastic via JDBC, ensure you have:
A Java runtime environment (JDK 1.8 or later) installed.
The PostgreSQL JDBC driver (
postgresql-<version>.jar
) downloaded.Connection details for SynxDB Elastic, including host, port, database name, username, and password.
Step 1. Download the JDBC driver
The JDBC driver can be downloaded from the official PostgreSQL website. Use the latest stable version compatible with SynxDB Elastic.
Example download command (for version 42.5.0):
wget https://jdbc.postgresql.org/download/postgresql-42.5.0.jar
Step 2. Connect to SynxDB Elastic
To connect to SynxDB Elastic, use the following connection string format in you Java program.
jdbc:postgresql://<host>:<port>/<database>?parameters
Common parameters:
user=<username>
: Specifies the database username.password=<password>
: Specifies the database password.ssl=<true|false>
: Enables or disables SSL connection.ApplicationName=<app_name>
: Optional, used to identify the client application.
Example:
jdbc:postgresql://db.example.com:5432/mydb?user=myuser&password=mypass&ssl=true
The following example demonstrates how to connect to SynxDB Elastic using JDBC:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SynxDBElasticExample {
public static void main(String[] args) {
String url = "jdbc:postgresql://your-synxdb-host:5432/your_database";
String user = "your_username";
String password = "your_password";
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT version();")) {
while (rs.next()) {
System.out.println("Database Version: " + rs.getString(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Step 3. Set up the environment
Download PostgreSQL JDBC driver
Before connecting to the database, download the PostgreSQL JDBC driver:
wget https://jdbc.postgresql.org/download/postgresql-42.5.0.jar
Compile Java code
After writing the Java program, compile it using the downloaded JDBC driver:
javac -cp postgresql-42.5.0.jar YourJavaProgram.java
Run the Java program
Execute the Java program with the classpath set to include the JDBC driver:
java -cp .:postgresql-42.5.0.jar YourJavaProgram
Execute SQL statements
To execute SQL statements through JDBC, you can refer to the following sections to add code to your java program.
Query data
String query = "SELECT id, name FROM users";
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
}
Insert data
String insertSQL = "INSERT INTO users (id, name) VALUES (1, 'Alice')";
try (Statement stmt = conn.createStatement()) {
int rowsAffected = stmt.executeUpdate(insertSQL);
System.out.println("Rows inserted: " + rowsAffected);
}
Update data
String updateSQL = "UPDATE users SET name = 'Bob' WHERE id = 1";
try (Statement stmt = conn.createStatement()) {
int rowsAffected = stmt.executeUpdate(updateSQL);
System.out.println("Rows updated: " + rowsAffected);
}
Delete data
String deleteSQL = "DELETE FROM users WHERE id = 1";
try (Statement stmt = conn.createStatement()) {
int rowsAffected = stmt.executeUpdate(deleteSQL);
System.out.println("Rows deleted: " + rowsAffected);
}
Transaction management
JDBC allows explicit transaction control:
conn.setAutoCommit(false);
try (Statement stmt = conn.createStatement()) {
stmt.executeUpdate("INSERT INTO users (id, name) VALUES (2, 'Charlie')");
stmt.executeUpdate("UPDATE users SET name = 'Charlie Updated' WHERE id = 2");
conn.commit();
} catch (SQLException e) {
conn.rollback();
e.printStackTrace();
}
Use connection pools
In production environments, using a connection pool (for example, HikariCP) improves performance.
Add HikariCP dependency
For Maven:
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
Configure HikariCP
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql://your-synxdb-host:5432/your_database");
config.setUsername("your_username");
config.setPassword("your_password");
config.setMaximumPoolSize(10);
HikariDataSource dataSource = new HikariDataSource(config);
Troubleshoot connection issues
If the connection fails, check:
Network accessibility to SynxDB Elastic.
Firewall or security group settings allowing PostgreSQL port (default 5432).
Correct JDBC URL, username, and password.
Database logs for detailed error messages.