% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/backend-jdbc.R
\name{backend-jdbc}
\alias{backend-jdbc}
\title{JDBC backend}
\description{
This backend supports databases accessed via \code{JDBCConnection} created by
\code{RJDBC::JDBC()} and \code{\link[DBI:dbConnect]{DBI::dbConnect()}}. dbplyr automatically detects the
underlying database type from the JDBC connection class and uses the
appropriate SQL dialect.

The following databases are recognized via their JDBC connection class:
\itemize{
\item PostgreSQL (\verb{org.postgresql.*}): \code{\link[=dialect_postgres]{dialect_postgres()}}
\item MySQL (\verb{com.mysql.*}): \code{\link[=dialect_mysql]{dialect_mysql()}}
\item MariaDB (\verb{org.mariadb.*}): \code{\link[=dialect_mariadb]{dialect_mariadb()}}
\item SQLite (\verb{org.sqlite.*}): \code{\link[=dialect_sqlite]{dialect_sqlite()}}
\item Oracle (\verb{oracle.*}): \code{\link[=dialect_oracle]{dialect_oracle()}}
\item SQL Server (\verb{com.microsoft.sqlserver.*}): \code{\link[=dialect_mssql]{dialect_mssql()}}
\item IBM DB2 (\verb{com.ibm.db2.*}): \code{\link[=dialect_db2]{dialect_db2()}}
\item SAP HANA (\verb{com.sap.db.*}): \code{\link[=dialect_hana]{dialect_hana()}}
\item Teradata (\verb{com.teradata.*}): \code{\link[=dialect_teradata]{dialect_teradata()}}
\item Apache Hive (\verb{org.apache.hive.*}): \code{\link[=dialect_hive]{dialect_hive()}}
\item Apache Spark (\verb{org.apache.spark.*} or \verb{com.simba.spark.*}): \code{\link[=dialect_spark_sql]{dialect_spark_sql()}}
\item Snowflake (\verb{net.snowflake.*}): \code{\link[=dialect_snowflake]{dialect_snowflake()}}
\item Impala (\verb{com.cloudera.impala.*}): \code{\link[=dialect_impala]{dialect_impala()}}
\item Amazon Redshift (\verb{com.amazon.redshift.*}): \code{\link[=dialect_redshift]{dialect_redshift()}}
}

If your database is not recognized, dbplyr will fall back to a generic ODBC
dialect. Please file an issue if you'd like support for additional databases.

See \code{vignette("translation-function")} and \code{vignette("translation-verb")} for
details of overall translation technology.
}
\examples{
# JDBC connections require the RJDBC package and a JDBC driver JAR file.
# Once connected, dbplyr automatically detects the database type:
#
# library(RJDBC)
# library(dplyr, warn.conflicts = FALSE)
#
# drv <- JDBC("org.postgresql.Driver", "postgresql.jar")
# con <- dbConnect(drv, "jdbc:postgresql://localhost/mydb", "user", "password")
# tbl(con, "my_table") |> filter(x > 1)
}
\seealso{
\code{\link[=with_dialect]{with_dialect()}} to use a different dialect if dbplyr guesses
incorrectly, or a more specific translation is available.
}
