Skip to main content
Neon Postgres Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

Connect Quarkus (JDBC) to Neon

Quarkus is a Java framework optimized for cloud environments. This guide shows how to connect to Neon from a Quarkus project using the PostgreSQL JDBC driver. To connect to a Lakebase Postgres databas...

Pre-built prompt for connecting Quarkus applications to Lakebase Postgres using JDBC

Quarkus is a Java framework optimized for cloud environments. This guide shows how to connect to Neon from a Quarkus project using the PostgreSQL JDBC driver.

To connect to a Lakebase Postgres database from a Quarkus application using the Postgres JDBC Driver:

  1. Create a Neon project

    If you do not have one already, create a Neon project.

    1. Navigate to the Projects page in the Neon Console.
    2. Click New Project.
    3. Specify your project settings and click Create Project.
  2. Create a Quarkus project

    Create a Quarkus project using the Quarkus CLI:

    Bash
    quarkus create app neon-with-quarkus-jdbc \
    --name neon-with-quarkus-jdbc \
    --package-name com.neon.tech \
    --extensions jdbc-postgresql,quarkus-agroal,resteasy-reactive

    You now have a Quarkus project in a folder named neon-with-quarkus-jdbc with the PostgreSQL JDBC driver, Agroal datasource implementation, and RESTEasy Reactive extensions installed.

  3. Configure a PostgreSQL data source

    Create a .env file in the root of your Quarkus project directory. Configure a JDBC data source using the components of your database connection string and specifying the database kind as shown:

    Bash
    QUARKUS_DATASOURCE_DB_KIND=postgresql
    QUARKUS_DATASOURCE_USERNAME=[user]
    QUARKUS_DATASOURCE_PASSWORD=[password]
    QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://[neon_hostname]/[dbname]?sslmode=require&channelBinding=require
  4. Use the PostgreSQL JDBC Driver

    Create a PostgresResource.java file in the same directory as the GreetingResource.java that was generated by Quarkus during project creation. Paste the following content into the PostgresResource.java file:

    Java
    package com.neon.tech;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.sql.DataSource;
    import jakarta.inject.Inject;
    import jakarta.ws.rs.GET;
    import jakarta.ws.rs.Path;
    import jakarta.ws.rs.Produces;
    import jakarta.ws.rs.core.MediaType;
    
    @Path("/postgres")
    public class PostgresResource {
        @Inject
        DataSource dataSource;
    
        @GET
        @Path("/version")
        @Produces(MediaType.TEXT_PLAIN)
        public String getVersion() {
            try (Connection connection = dataSource.getConnection();
                    Statement statement = connection.createStatement()) {
    
                ResultSet resultSet = statement.executeQuery("SELECT version()");
    
                if (resultSet.next()) {
                    return resultSet.getString(1);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return null;
        }
    }

    This code defines a HTTP endpoint that will query the database version and return it as a response to incoming requests.

  5. Run the application

    Start the application in development mode using the Quarkus CLI from the root of the project directory:

    Bash
    quarkus dev

    Visit localhost:8080/postgres/version in your web browser. Your Neon database's Postgres version will be returned. For example:

    PostgreSQL 17.5 (6bc9ef8) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit

Join our Discord Server to ask questions or see what others are doing with Neon. For paid plan support options, see Support.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu