Introduction
What is JDBC?
Java Database Connectivity (JDBC) is an API that enables Java applications to interact with databases. It provides methods to query and update data in a database, as well as to retrieve metadata about the database itself.
What is Batch Processing?
Batch processing allows you to execute a group of SQL statements as a batch. This reduces the number of database calls and can significantly improve performance when executing multiple statements.
Table of Contents
- Setting Up the MySQL Database
- Adding MySQL JDBC Driver to Your Project
- Establishing a Database Connection
- Batch Inserting Records with JDBC
- Closing the Connection
- Conclusion
1. Setting Up the MySQL Database
First, create a database named jdbc_example
and a products
table within it. Open your MySQL command line or any MySQL client and execute the following commands:
CREATE DATABASE jdbc_example;
USE jdbc_example;
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
description VARCHAR(255),
price DECIMAL(10, 2)
);
2. Adding MySQL JDBC Driver to Your Project
To interact with a MySQL database, you need to add the MySQL JDBC driver to your project. If you are using Maven, add the following dependency to your pom.xml
file:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
3. Establishing a Database Connection
We will start by establishing a connection to the MySQL database using JDBC.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCExample {
private static final String URL = "jdbc:mysql://localhost:3306/jdbc_example";
private static final String USER = "root";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
public static void main(String[] args) {
try (Connection connection = getConnection()) {
if (connection != null) {
System.out.println("Connected to the database!");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4. Batch Inserting Records with JDBC
We can use the Connection
interface to create a PreparedStatement
object and execute a batch of SQL insert statements.
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.math.BigDecimal;
public class BatchInsertExample {
private static final String INSERT_PRODUCTS_SQL = "INSERT INTO products (name, description, price) VALUES (?, ?, ?)";
public static void main(String[] args) {
try (Connection connection = JDBCExample.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(INSERT_PRODUCTS_SQL)) {
// Create an array of product data
String[][] products = {
{"Laptop", "Dell Inspiron", "75000.00"},
{"Smartphone", "Samsung Galaxy", "30000.00"},
{"Tablet", "Apple iPad", "50000.00"},
{"Smartwatch", "Apple Watch", "20000.00"},
{"Headphones", "Bose QuietComfort", "15000.00"}
};
// Add SQL statements to the batch
for (String[] product : products) {
preparedStatement.setString(1, product[0]);
preparedStatement.setString(2, product[1]);
preparedStatement.setBigDecimal(3, new BigDecimal(product[2]));
preparedStatement.addBatch();
}
// Execute the batch of SQL statements
int[] result = preparedStatement.executeBatch();
System.out.println("Inserted " + result.length + " records successfully!");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
5. Closing the Connection
Using the try-with-resources statement ensures that the connection is closed automatically. This is important to free up database resources.
import java.sql.Connection;
import java.sql.SQLException;
public class CloseConnectionExample {
public static void main(String[] args) {
try (Connection connection = JDBCExample.getConnection()) {
if (connection != null) {
System.out.println("Connected to the database!");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Conclusion
In this tutorial, we have covered the basics of using JDBC to perform batch inserts into a MySQL database table. We demonstrated how to establish a connection, execute a batch of SQL insert statements, and close the connection using the try-with-resources statement. This guide should help you get started with JDBC and understand how to use batch processing effectively with MySQL.
Comments
Post a Comment
Leave Comment