diff --git a/qqq-backend-module-rdbms/pom.xml b/qqq-backend-module-rdbms/pom.xml
index 19d778c3..3e9be513 100644
--- a/qqq-backend-module-rdbms/pom.xml
+++ b/qqq-backend-module-rdbms/pom.xml
@@ -50,6 +50,11 @@
mysql-connector-java
8.0.30
+
+ com.mchange
+ c3p0
+ 0.10.0
+
com.h2database
h2
diff --git a/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java b/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java
index 2a88d43e..101d96f4 100644
--- a/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java
+++ b/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java
@@ -24,6 +24,7 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
import java.io.Serializable;
import java.sql.Connection;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -53,9 +54,12 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
*******************************************************************************/
public InsertOutput execute(InsertInput insertInput) throws QException
{
- InsertOutput rs = new InsertOutput();
+ InsertOutput rs = new InsertOutput();
QTableMetaData table = insertInput.getTable();
+ Connection connection = null;
+ boolean needToCloseConnection = false;
+
try
{
List insertableFields = table.getFields().values().stream()
@@ -72,8 +76,6 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
List outputRecords = new ArrayList<>();
rs.setRecords(outputRecords);
- Connection connection;
- boolean needToCloseConnection = false;
if(insertInput.getTransaction() != null && insertInput.getTransaction() instanceof RDBMSTransaction rdbmsTransaction)
{
connection = rdbmsTransaction.getConnection();
@@ -84,87 +86,77 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
needToCloseConnection = true;
}
- try
+ for(List page : CollectionUtils.getPages(insertInput.getRecords(), QueryManager.PAGE_SIZE))
{
- for(List page : CollectionUtils.getPages(insertInput.getRecords(), QueryManager.PAGE_SIZE))
+ String tableName = escapeIdentifier(getTableName(table));
+ StringBuilder sql = new StringBuilder("INSERT INTO ").append(tableName).append("(").append(columns).append(") VALUES");
+ List