From a4add006524109578f71bc4f85d90b5665386de0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Jul 2020 13:57:37 +0800 Subject: [PATCH] 1.批量添加的支持 --- build.gradle | 2 +- src/main/java/com/taover/repository/CustomJdbcTemplate.java | 49 +++++++++++++++++++++++++------------------------ 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index 973215a..3a2d5de 100644 --- a/build.gradle +++ b/build.gradle @@ -55,7 +55,7 @@ uploadArchives { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) } pom.project { - version '2.1.16' + version '2.1.22' artifactId ARTIFACT_Id groupId GROUP_ID packaging TYPE diff --git a/src/main/java/com/taover/repository/CustomJdbcTemplate.java b/src/main/java/com/taover/repository/CustomJdbcTemplate.java index db7a49f..add2b9b 100644 --- a/src/main/java/com/taover/repository/CustomJdbcTemplate.java +++ b/src/main/java/com/taover/repository/CustomJdbcTemplate.java @@ -451,28 +451,44 @@ public class CustomJdbcTemplate { * 批量添加 * @throws Exception */ - public int[] addEntityList(List entityList) throws Exception { + public int addEntityList(List entityList) throws Exception { if(entityList == null || entityList.isEmpty()) { throw new Exception("entitylist is empty or null"); } //构造SQL语句及Entity Field列表 List beanFieldList = new ArrayList(this.beanToTableField.size()); - String exeSql = this.constructUpdateSql(entityList.get(0), beanFieldList); + StringBuffer exeSql = new StringBuffer(this.constructUpdateSql(entityList.get(0), beanFieldList)); //构造参数信息 - List batchArgs = new ArrayList(); - for(T item: entityList) { - Object[] itemData = this.getArgsByFieldAndEntity(item, beanFieldList); - batchArgs.add(itemData); + List args = new ArrayList(); + exeSql.append(" VALUES"); + for(int itemIndex=0; itemIndex beanFieldList) { StringBuffer sqlInsertPart = new StringBuffer("INSERT INTO "+this.getTableSql()+"("); - StringBuffer sqlColumnPart = new StringBuffer(") VALUES ("); Iterator beanFieldIter = this.beanToTableField.keySet().iterator(); while(beanFieldIter.hasNext()){ String beanFieldName = beanFieldIter.next(); @@ -494,23 +510,8 @@ public class CustomJdbcTemplate { beanFieldList.add(beanField); sqlInsertPart.append("`"+tableFieldName+"`,"); - sqlColumnPart.append(" ?,"); - } - return sqlInsertPart.substring(0, sqlInsertPart.length()-1)+sqlColumnPart.substring(0, sqlColumnPart.length()-1)+")"; - } - - private Object[] getArgsByFieldAndEntity(T entity, List beanFieldList) throws IllegalArgumentException, IllegalAccessException { - Object[] data = new Object[beanFieldList.size()]; - for(int i=0; i