<!-- For Maven -->
<dependencies>
<dependency>
<groupId>com.github.davidmoten</groupId>
<artifactId>pgsql-embedded</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>
// For Gradle
dependencies {
implementation 'com.github.davidmoten:pgsql-embedded:VERSION'
}
import org.postgresql.ds.PGSimpleDataSource;
import org.postgresql.Driver;
import org.postgresql.core.ProtocolConnection;
import org.postgresql.core.v3.ConnectionFactoryImpl;
import org.postgresql.xa.PGXADataSource;
import org.postgresql.xa.PGXAConnection;
import org.postgresql.xa.PGXADataSourceImpl;
import org.postgresql.xa.PGXAConnectionFactory;
public class PGEmbeddedExample {
public static void main(String[] args) {
PGSimpleDataSource dataSource = new PGSimpleDataSource();
dataSource.setDatabaseName("mydb");
dataSource.setUser("myuser");
dataSource.setPassword("mypassword");
ConnectionFactoryImpl factory = new ConnectionFactoryImpl();
ProtocolConnection conn = factory.openConnectionImpl(dataSource, 0, null);
// ...
conn.close();
factory.close();
}
}
import org.postgresql.osgi.SharedServiceDataSourceFactory;
public class EmbeddedDatabase {
private static String databaseName = "mydb";
private static String username = "myuser";
private static String password = "mypassword";
public static void main(String[] args) {
System.setProperty("PG_REGRESS_JDBC_DATABASE", databaseName);
System.setProperty("PG_REGRESS_JDBC_USERNAME", username);
System.setProperty("PG_REGRESS_JDBC_PASSWORD", password);
SharedServiceDataSourceFactory dataSourceFactory = new SharedServiceDataSourceFactory();
DataSource dataSource = dataSourceFactory.createDataSource();
// ...
dataSourceFactory.closeDataSource(dataSource);
}
}