Last Updated on 07 March 2020   |   Print Email
This article explains how to write Java code to connect to a MySQL database server, step by step. If you just want to see the code example, click on Code example: a simple program connects to MySQL. If you have never written Java code to connect MySQL before, it’s worth reading this tutorial from the beginning.Table of content:
First, in order to have Java program working with MySQL, we need a JDBC driver for MySQL. Browse this URL:http://dev.mysql.com/downloads/connector/j/to download the latest version of the JDBC driver for MySQL called Connector/J. MySQL Connector/J comes into 2 major versions: 5.1 and 8.0. The latest version 8.0 supports JDBC 4.2 and JDK 8 or higher.Click the Download button next to Platform Independent (Architecture Independent), ZIP Archive to download a zip archive. Extract the ZIPfile to a desired location on your computer.
The distribution includes a binary JAR file, source code, documentation and license files. But only one file we need is the JAR file mysql-connector-java-VERSION.jar. Copy this file into your project and make it available in your program’s classpath. You can use newer version of JDBC driver for MySQL.If your Java project based on Maven, you just need to declare the following dependency in the pom.xml file:
The Connector/J version 8.0 library comes with a JDBC driver class: com.mysql.cj.jdbc.Driver. Before Java 6, we have to load the driver explicitly by this statement:
Class.forName("com.mysql.cj.jdbc.Driver");
However that statement is no longer needed, thanks to new update in JDBC 4.0 comes from Java 6. As long as you put the MySQL JDBC driver JAR file file into your program’s classpath, the driver manager can find and load the driver.
3. Understand the getConnection() method of DriverManager class
It’s quite easy to make a connection to a database server in general, as well as to a MySQL server in particular. Just using the method getConnection()of the class DriverManager which is available in the package java.sql.There are three different signatures of the method getConnection()which we can use:
All three versions have a parameter called urlwhich is the database URL string in the following format:jdbc:mysql://[host][:port]/[database] [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...where:
host: host name or IP address of the MySQL server.
port: port number of the server, default is 3306.
database: name of the database on the server.
propertyName1=propertyValue1: a key=value pair for an additional property which will be sent to the server. For example, to send a username and password, write: ?user=root&password=secret
If a connection was made successfully with the database, the getConnection() method returns an instance of Connection class which will be used to make queries and perform other database operations.
4. Java code example connect to MySQL database
The following example program makes three connections to three MySQL database in three different ways:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class MySQLConnectExample {
public static void main(String[] args) {
// creates three different Connection objects
Connection conn1 = null;
Connection conn2 = null;
Connection conn3 = null;
try {
// connect way #1
String url1 = "jdbc:mysql://localhost:3306/test1";
String user = "root";
String password = "secret";
conn1 = DriverManager.getConnection(url1, user, password);
if (conn1 != null) {
System.out.println("Connected to the database test1");
}
// connect way #2
String url2 = "jdbc:mysql://localhost:3306/test2?user=root&password=secret";
conn2 = DriverManager.getConnection(url2);
if (conn2 != null) {
System.out.println("Connected to the database test2");
}
// connect way #3
String url3 = "jdbc:mysql://localhost:3306/test3";
Properties info = new Properties();
info.put("user", "root");
info.put("password", "secret");
conn3 = DriverManager.getConnection(url3, info);
if (conn3 != null) {
System.out.println("Connected to the database test3");
}
} catch (SQLException ex) {
System.out.println("An error occurred. Maybe user/password is invalid");
ex.printStackTrace();
}
}
}
NOTES: You should close the database connection in the finally clause like this:
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He started programming with Java in the time of Java 1.4 and has been falling in love with Java since then. Make friend with him on Facebook and watch his Java videos you YouTube.