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.

Download JDBC driver for MySQL

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.

download jdbc driver for mysql

Click the Download button next to Platform Independent (Architecture Independent), ZIP Archive to download a zip archive. Extract the mysql-connector-java-5.1.21.zip file to a desired location on your computer.

locate mysql-connector-java-5.1.21-bin.jar

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-5.1.21-bin.jar. Copy this file into your project and make it available in your program’s classpath.

 

Recommended Book: MySQL (5th Edition) (Developer's Library)

 

No need to load MySQL driver class explicitly

The Connector/J library comes with a JDBC driver class: com.mysql.jdbc.Driver. Before Java 6, we have to load the driver explicitly by this statement:

Class.forName("com.mysql.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-connector-java-5.1.21-bin.jar file into your program’s classpath, the JDBC’s driver manager can find and load the driver.

 

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:

    • static Connection getConnection(String url)
    • static Connection getConnection(String url, Properties info)
    • static Connection getConnection(String url, String user, String password)

All three versions have a parameter called url which is a 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.

 

Recommended Book: High Performance MySQL: Optimization, Backups, and Replication

 

Code example: a simple program connects to MySQL

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();
        }
    }
}

 

 

Compile and run the example

Type the following command to compile the example program:

javac MySQLConnectExample.java

Suppose the Connect/J library is placed in the same directory as the MySQLConnectExample.java file. Type the following command to run:

java -cp mysql-connector-java-5.1.21-bin.jar;. MySQLConnectExample

And here is the result when running the example program:

compile and run MySQLConnectExample

 

Recommended Book: Java Database Best Practices

Attachments:
Download this file (MySQLConnectExample.java)MySQLConnectExample.java[Example program]1 kB
avatar
error on compling public class mysqlconnectexample should be declared in a file named mysqlconnectexample.java since it is a public class .
VOTES:0
avatar
You must set the file name of the example class as it is: MySQLConnectExample.java
VOTES:0
avatar
Good clear example - thanks!
VOTES:0
avatar
I got this to run fine, but how do I connect to the database from a JSP?
VOTES:0
avatar
Jay wrote:
I got this to run fine, but how do I connect to the database from a JSP?
You can use JSTL tags in the JSP page, see:
- JSTL SQL Tag sql:setDataSource
- JSTL SQL Tag sql:query
VOTES:0
Start learning on Udemy today!