To insert multiple rows into a MySQL database using Java, you can use JDBC (Java Database Connectivity) directly or utilize an ORM (Object-Relational Mapping) framework like JPA (Java Persistence API) if your project is already using it. Here, We'll provide examples for both approaches.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class MultipleInsert { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/your_database"; String user = "username"; String password = "password"; String insertQuery = "INSERT INTO your_table (column1, column2) VALUES (?, ?)"; try (Connection connection = DriverManager.getConnection(url, user, password); PreparedStatement statement = connection.prepareStatement(insertQuery)) { // Inserting multiple rows for (int i = 0; i < 10; i++) { statement.setString(1, "value1_" + i); statement.setString(2, "value2_" + i); statement.addBatch(); } // Execute the batch insert statement.executeBatch(); System.out.println("Rows inserted successfully."); } catch (SQLException e) { e.printStackTrace(); } } } If you're using JPA, you can create and persist entities in a loop:
import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class MultipleInsert { public static void main(String[] args) { EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("YourPersistenceUnitName"); EntityManager entityManager = entityManagerFactory.createEntityManager(); EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); // Inserting multiple rows for (int i = 0; i < 10; i++) { YourEntity entity = new YourEntity(); entity.setColumn1("value1_" + i); entity.setColumn2("value2_" + i); entityManager.persist(entity); } transaction.commit(); entityManager.close(); entityManagerFactory.close(); System.out.println("Rows inserted successfully."); } } Replace your_database, username, password, your_table, column1, and column2 with your actual database details. In the JPA example, replace "YourPersistenceUnitName" with the name of your persistence unit defined in persistence.xml, and YourEntity with your actual entity class.
Java JPA batch insert example
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); List<Entity> entities = new ArrayList<>(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entities.add(entity); entityManager.persist(entity); if (i % 50 == 0) { // flush in batches of 50 entityManager.flush(); entityManager.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); Java JPA bulk insert multiple rows
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); List<Entity> entities = new ArrayList<>(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entities.add(entity); } for (int i = 0; i < entities.size(); i += 50) { List<Entity> sublist = entities.subList(i, Math.min(i + 50, entities.size())); sublist.forEach(entityManager::persist); entityManager.flush(); entityManager.clear(); } entityManager.getTransaction().commit(); entityManager.close(); Java JPA batch insert performance
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entityManager.persist(entity); if (i % 50 == 0) { // flush in batches of 50 entityManager.flush(); entityManager.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); Java JPA bulk insert vs individual insert
// Bulk insert entityManager.getTransaction().begin(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entityManager.persist(entity); } entityManager.getTransaction().commit(); // Individual insert entityManager.getTransaction().begin(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entityManager.persist(entity); entityManager.flush(); } entityManager.getTransaction().commit(); Java JPA batch insert Hibernate
Session session = entityManager.unwrap(Session.class); session.beginTransaction(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties session.persist(entity); if (i % 50 == 0) { // flush in batches of 50 session.flush(); session.clear(); } } session.getTransaction().commit(); Java JPA batch insert native query
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); for (int i = 0; i < 1000; i++) { entityManager.createNativeQuery("INSERT INTO table_name (column1, column2) VALUES (?, ?)") .setParameter(1, value1) .setParameter(2, value2) .executeUpdate(); if (i % 50 == 0) { // flush in batches of 50 entityManager.flush(); entityManager.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); Java JPA batch insert Oracle
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); Session session = entityManager.unwrap(Session.class); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties session.persist(entity); if (i % 50 == 0) { // flush in batches of 50 session.flush(); session.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); Java JPA batch insert PostgreSQL
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); Session session = entityManager.unwrap(Session.class); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties session.persist(entity); if (i % 50 == 0) { // flush in batches of 50 session.flush(); session.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); Java JPA bulk insert performance tuning
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entityManager.persist(entity); if (i % 50 == 0) { // flush in batches of 50 entityManager.flush(); entityManager.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); Java JPA batch insert MySQL
EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); for (int i = 0; i < 1000; i++) { Entity entity = new Entity(); // set entity properties entityManager.persist(entity); if (i % 50 == 0) { // flush in batches of 50 entityManager.flush(); entityManager.clear(); } } entityManager.getTransaction().commit(); entityManager.close(); lidar mamp mongo-java-driver glsl pymssql data-analysis urxvt angular-http interpolation virtual-memory