= Interact with databases with Java and JDBC in 3 steps

When you write an application, it's common to require data storage.
Sometimes you're storing  assets your application needs to function, and other times you're storing user data, including preferences and save data.
One way to store data is in a database, and in order to communicate between your code and a database, you need a database binding or connector for your language.
For Java, a common database connector is JDBC (Java database connectivity.)

== 1. Install Java

Of course, to develop with Java you must also have Java installed.
I recommend https://opensource.com/article/22/3/manage-java-versions-sdkman[SDKman] for Linux, macOS, and WSL or Cygwin.
For Windows, you can download OpenJDK from https://developers.redhat.com/products/openjdk/download[developers.redhat.com].

== 2. Install JDBC with Maven

JDBC is an API, imported into your code with the statement `import java.sql.*`, but for it to be useful you must have a database driver and a database installed for it to interact with.
The database driver you use and the database you want to communicate with must match: to interact with MySQL, you need a MySQL driver, to interact with SQLite3, you must have the SQLite3 driver, and so on.

For this article, I use http://LINK-TO-POSTGRESQL-INTRO-ARTICLE[PostgreSQL], but all the major databases, including https://www.redhat.com/sysadmin/mysql-mariadb-introduction[MariaDB] and https://opensource.com/article/21/2/sqlite3-cheat-sheet[SQLite3], have JDBC drivers.

You can download JDBC for PostgreSQL from https://jdbc.postgresql.org/download.html[jdbc.postgresql.org].
I use https://opensource.com/article/22/3/maven-manage-java-dependencies[Maven] to manage Java dependencies, so I include it in `pom.xml` (adjusting the version number for what's current on https://mvnrepository.com/artifact/org.postgresql/postgresql[Maven Central]):

[source,xml]
----
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.5.0</version>
</dependency>
----

== 3. Install the database

You have to install the database you want to connect to through JDBC.
There are several very good open source databases, but I had to choose one for this article, so I chose PostgreSQL.

To install PostgreSQL on Linux, use your software repository.
On Fedora, CentOS, Mageia, and similar:

[source,bash]
----
$ sudo dnf install postgresql postgresql-server
----

On Debian, Linux Mint, Elementary, and similar:

[source,bash]
----
$ sudo apt install postgresql postgresql-contrib
----

== Database connectivity

If you're not using PostgreSQL, the same general process applies:

1. Install Java.
2. Find the JDBC driver for your database of choice and include it in your `pom.xml` file.
3. Install the database (server and client) on your development OS.

Three easy steps, and you're ready to start writing code.
In my next article, I'll show you how to use JDBC with PostgreSQL.
