In this article, we will learn and list down the steps to connect MS Access database and finally executing a simple query to test whether connected database works as expected
Connect MS Access database :
We will divide this article into 2 parts
- MS Access database
- Java JDBC application
Check MS Access database interaction through Java JDBC API for Java 1.8 version
1. Set-up MS Access Database :
Before working with JDBC API to interact with database (to be specific MS Access database for this example), we need to set up MS Access database and create required things like
- Create database
- Create table inside newly created database
- Insert few sample records inside newly created table
It’s very easy open Microsoft Office Access 2007 Database and create new table called “Player” and add 4 fields like
- Player_ID
- Name
- Age
- Matches
And finally insert couple of records
2. Java JDBC application :
- As we are completed with set up and ready with MS Access database
- next step is to figure out essential things required to query database
- from Java application using JDBC API
2.1 Pre-requisite :
- Loading MS Access driver class (com.jdbc.odbc.JdbcOdbcDriver)
- Database URL formation (database file location)
2.2 JDBC program to connect and query MS Access database/table :
- Once we are ready with above listed things
- Then we can go ahead and code an example to connect MS Access database
- Finally querying database
MsAccessDatabaseConnectionExample.java
package in.bench.resources.msaccess.db.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MsAccessDatabaseConnectionExample {
public static void main(String[] args) {
// variables
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
// Step 1: Loading or
// registering Oracle JDBC driver class
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException cnfex) {
System.out.println("Problem in loading"
+ " MS Access JDBC driver");
cnfex.printStackTrace();
}
// Step 2: Opening database connection
try {
String msAccessDBName = "D:\\WORKSPACE"
+ "\\TEST_WORKSPACE\\Java-JDBC\\Player.accdb";
String dbURL = "jdbc:odbc:Driver="
+ "{Microsoft Access Driver (*.mdb, *.accdb)};"
+ "DBQ="
+ msAccessDBName
+ ";DriverID=22;READONLY=true";
// Step 2.A: Create and
// get connection using DriverManager class
connection = DriverManager.getConnection(dbURL);
// Step 2.B: Creating JDBC Statement
statement = connection.createStatement();
// Step 2.C: Executing SQL and
// retrieve data into ResultSet
resultSet = statement
.executeQuery("SELECT * FROM PLAYER");
System.out.println("ID\tName\t\t\tAge\tMatches");
System.out.println("==\t================\t===\t=======");
// processing returned data and printing into console
while(resultSet.next()) {
System.out.println(resultSet.getInt(1) + "\t" +
resultSet.getString(2) + "\t" +
resultSet.getString(3) + "\t" +
resultSet.getString(4));
}
}
catch(SQLException sqlex){
sqlex.printStackTrace();
}
finally {
// Step 3: Closing database connection
try {
if(null != connection) {
// cleanup resources, once after processing
resultSet.close();
statement.close();
// and then finally close connection
connection.close();
}
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
}
}
Output:
ID Name Age Matches
== ================ === =======
1 Sachin Tendulkar 43 200
2 Shane Warne 45 145
3 Kevin Pietersen 36 104
4 Shahid Afridi 36 27
5 Brian Lara 46 131
6 Graeme Smith 36 117
7 Mahela Jayawardene 38 145
2.3 Download :
Related Articles :
- Java – Introduction to JDBC
- Java – JDBC Driver types
- Java – Core JDBC components
- Java – JDBC Driver list for all leading database
- Java – JDBC connection steps
- Java – An example to connect MySQL database
- Java – An example to connect Oracle database
- Java – An example to connect MS Access database
- Java 8 – An example to connect MS Access database in Java 8
- Java – JDBC program to connect IBM DB2 database running on Mainframe z/OS system
- Java – Creating database using JDBC Statement interface
- Java – Droping database using JDBC Statement interface
- Java – Creating a table using JDBC Statement interface
- Java – Inserting a record using JDBC Statement interface
- Java – Getting all list of records using JDBC Statement interface
- Java – Getting single record using JDBC Statement interface
- Java – Updating a record using JDBC Statement interface
- Java – Deleting a record using JDBC Statement interface
- Java – Dropping a table using JDBC Statement interface
- Java – Batch update using JDBC Statement interface
- Java – Batch insert using JDBC Statement interface
- Java – Creating a table using JDBC PreparedStatement interface
- Java – Inserting a record using JDBC PreparedStatement interface
- Java – Getting all list of records using JDBC PreparedStatement interface
- Java – Getting single record using JDBC PreparedStatement interface
- Java – Updating a record using JDBC PreparedStatement interface
- Java – Deleting a record using JDBC PreparedStatement interface
- Java – Batch update using JDBC PreparedStatement interface
- Java – Batch insert using JDBC PreparedStatement interface
- Java – Calling Stored Procedure using JDBC CallableStatement interface
- Java – Calling Stored Function using JDBC CallableStatement interface
- Java – Calling Stored Procedure using JDBC CallableStatement interface with Batch execution
- Java – Transaction handling using JDBC Statement interface
- Java – Transaction handling using JDBC PreparedStatement interface
- Java – Integration with Spring framework (Spring JDBC)
- Java – Where clause example using JDBC Statement interface
- Java – Like clause example using JDBC Statement interface
- Java – Order by clause example using JDBC Statement interface
- Java – Metadata of database using JDBC DatabaseMetaData interface
- Java – Metadata of Resultset using JDBC ResultSetMetaData interface
- Java – Interview question and answer on JDBC
References :
- https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-usagenotes-connect-drivermanager.html
- https://www.benchresources.net/spring-jdbc-introduction-and-jdbc-example-without-spring/
- https://docs.oracle.com/javase/tutorial/jdbc/basics/gettingstarted.html
- https://docs.oracle.com/cd/E11882_01/java.112/e16548/overvw.htm#JJDBC28025
- http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html
- https://en.wikipedia.org/wiki/JDBC_driver
- http://www.devx.com/tips/Tip/28818
- https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#forName(java.lang.String)
Happy Coding !!
Happy Learning !!