2.3. JDBC Driver
Presto can be accessed from Java using the JDBC driver. Download presto-jdbc-329.jar and add it to the class path of your Java application.
The driver is also available from Maven Central:
<dependency> <groupId>io.prestosql</groupId> <artifactId>presto-jdbc</artifactId> <version>329</version> </dependency>
Driver Name
The driver class name is io.prestosql.jdbc.PrestoDriver
.
Most users do not need this information as drivers are loaded automatically.
Connecting
The following JDBC URL formats are supported:
jdbc:presto://host:port
jdbc:presto://host:port/catalog
jdbc:presto://host:port/catalog/schema
For example, use the following URL to connect to Presto
running on example.net
port 8080
with the catalog hive
and the schema sales
:
jdbc:presto://example.net:8080/hive/sales
The above URL can be used as follows to create a connection:
String url = "jdbc:presto://example.net:8080/hive/sales";
Connection connection = DriverManager.getConnection(url, "test", null);
Connection Parameters
The driver supports various parameters that may be set as URL parameters,
or as properties passed to DriverManager
. Both of the following
examples are equivalent:
// URL parameters
String url = "jdbc:presto://example.net:8080/hive/sales";
Properties properties = new Properties();
properties.setProperty("user", "test");
properties.setProperty("password", "secret");
properties.setProperty("SSL", "true");
Connection connection = DriverManager.getConnection(url, properties);
// properties
String url = "jdbc:presto://example.net:8080/hive/sales?user=test&password=secret&SSL=true";
Connection connection = DriverManager.getConnection(url);
These methods may be mixed; some parameters may be specified in the URL, while others are specified using properties. However, the same parameter may not be specified using both methods.
Parameter Reference
Name | Description |
---|---|
user |
Username to use for authentication and authorization. |
password |
Password to use for LDAP authentication. |
socksProxy |
SOCKS proxy host and port. Example: localhost:1080 |
httpProxy |
HTTP proxy host and port. Example: localhost:8888 |
applicationNamePrefix |
Prefix to append to any specified ApplicationName client info
property, which is used to set the source name for the Presto query.
If neither this property nor ApplicationName are set, the source
for the query is presto-jdbc . |
accessToken |
Access token for token based authentication. |
SSL |
Use HTTPS for connections |
SSLKeyStorePath |
The location of the Java KeyStore file that contains the certificate and private key to use for authentication. |
SSLKeyStorePassword |
The password for the KeyStore. |
SSLTrustStorePath |
The location of the Java TrustStore file to use. to validate HTTPS server certificates. |
SSLTrustStorePassword |
The password for the TrustStore. |
KerberosRemoteServiceName |
Presto coordinator Kerberos service name. This parameter is required for Kerberos authentication. |
KerberosPrincipal |
The principal to use when authenticating to the Presto coordinator. |
KerberosUseCanonicalHostname |
Use the canonical hostname of the Presto coordinator for the Kerberos service principal by first resolving the hostname to an IP address and then doing a reverse DNS lookup for that IP address. This is enabled by default. |
KerberosServicePrincipalPattern |
Presto coordinator Kerberos service principal pattern. The default is
${SERVICE}@${HOST} . ${SERVICE} is replaced with the value of
KerberosRemoteServiceName and ${HOST} is replaced with the
hostname of the coordinator (after canonicalization if enabled). |
KerberosConfigPath |
Kerberos configuration file. |
KerberosKeytabPath |
Kerberos keytab file. |
KerberosCredentialCachePath |
Kerberos credential cache. |
extraCredentials |
Extra credentials for connecting to external services. The
extraCredentials is a list of key-value pairs. Example:
foo:bar;abc:xyz will create credentials abc=xyz and foo=bar |