Connect to MySQL database via JDBC

This article explains how to write Java code to connect to a MySQL database server, step by step. If you have never written Java code to connect MySQL before, it’s worth reading this tutorial from the beginning.
Download JDBC driver for MySQLFirst, in order to have Java program working with MySQL, we need a JDBC driver for MySQL. Browse this URL:https://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.

No need to load MySQL driver class explicitlyThe 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 themysql-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 classIt’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 Connectionclass which will be used to make queries and perform other database operations.
Code example: a simple program connects to MySQLThe following example program makes three connections to three MySQL database in three different ways:

importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.util.Properties;
publicclassMySQLConnectExample {
publicstaticvoidmain(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 = newProperties();
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 exampleType 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
 

1 thought on “Connect to MySQL database via JDBC”

  1. Pingback: JDBC’s database connection URLs for common databases - Tech Blicks

Leave a Comment

Your email address will not be published. Required fields are marked *