Commit ab3b0c973a42bd9fc900a8826a84e7c6c0c7907e
1 parent
1adcb6de
Exists in
master
and in
2 other branches
1.repository add方法增加事务、更新参数构造优化、exception info优化
Showing
2 changed files
with
30 additions
and
44 deletions
Show diff stats
build.gradle
@@ -55,7 +55,7 @@ uploadArchives { | @@ -55,7 +55,7 @@ uploadArchives { | ||
55 | authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) | 55 | authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) |
56 | } | 56 | } |
57 | pom.project { | 57 | pom.project { |
58 | - version '2.1.8' | 58 | + version '2.1.9' |
59 | artifactId ARTIFACT_Id | 59 | artifactId ARTIFACT_Id |
60 | groupId GROUP_ID | 60 | groupId GROUP_ID |
61 | packaging TYPE | 61 | packaging TYPE |
src/main/java/com/taover/repository/CustomJdbcTemplate.java
@@ -16,6 +16,7 @@ import javax.persistence.Id; | @@ -16,6 +16,7 @@ import javax.persistence.Id; | ||
16 | import javax.persistence.Table; | 16 | import javax.persistence.Table; |
17 | 17 | ||
18 | import org.springframework.jdbc.core.JdbcTemplate; | 18 | import org.springframework.jdbc.core.JdbcTemplate; |
19 | +import org.springframework.transaction.annotation.Transactional; | ||
19 | 20 | ||
20 | /** | 21 | /** |
21 | * | 22 | * |
@@ -209,20 +210,20 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -209,20 +210,20 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
209 | } | 210 | } |
210 | } | 211 | } |
211 | 212 | ||
212 | - private void appendSql(StringBuffer sql, StringBuffer pql, List<Object> list, List<Object[]> obj) { | 213 | + private void appendSetSql(StringBuffer sql, StringBuffer pql, List<Object> list, List<Object[]> obj) { |
213 | for (Object[] arg : obj) { | 214 | for (Object[] arg : obj) { |
214 | - String opt = "="; | ||
215 | if (arg.length > 2) { | 215 | if (arg.length > 2) { |
216 | - opt = (String)arg[2]; | ||
217 | - } | ||
218 | - if (opt.equals("=")) { | ||
219 | - sql.append(" " + arg[0] + " = ?,"); | 216 | + sql.append(" " + arg[0] + " = " + arg[0] + arg[2] + " ?, "); |
217 | + pql.append(" " + arg[0] + " = " + arg[0] + arg[2] + arg[1] +", "); | ||
218 | + list.add(arg[1]); | ||
219 | + }else if(arg.length == 2) { | ||
220 | + sql.append(" " + arg[0] + " = ?,"); | ||
220 | pql.append(" " + arg[0] + " = " + arg[1] + ","); | 221 | pql.append(" " + arg[0] + " = " + arg[1] + ","); |
221 | - } else { | ||
222 | - sql.append(" " + arg[0] + " = " + arg[0] + " + ?,"); | ||
223 | - pql.append(" " + arg[0] + " = " + arg[0] + " + " + arg[1] + ","); | 222 | + list.add(arg[1]); |
223 | + }else if(arg.length == 1) { | ||
224 | + sql.append(" " + arg[0] + ", "); | ||
225 | + pql.append(" " + arg[0] + ", "); | ||
224 | } | 226 | } |
225 | - list.add(arg[1]); | ||
226 | } | 227 | } |
227 | } | 228 | } |
228 | 229 | ||
@@ -269,7 +270,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -269,7 +270,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
269 | if(tempList != null && tempList.size() == 1){ | 270 | if(tempList != null && tempList.size() == 1){ |
270 | return tempList.get(0); | 271 | return tempList.get(0); |
271 | }else{ | 272 | }else{ |
272 | - throw new Exception("数据库存在多条记录满足条件"); | 273 | + throw new Exception("found multi rows with condition,but this func expected one row"); |
273 | } | 274 | } |
274 | } | 275 | } |
275 | 276 | ||
@@ -285,7 +286,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -285,7 +286,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
285 | if(tempList != null && tempList.size() == 1){ | 286 | if(tempList != null && tempList.size() == 1){ |
286 | return tempList.get(0); | 287 | return tempList.get(0); |
287 | }else{ | 288 | }else{ |
288 | - throw new Exception("数据库存在多条记录满足条件"); | 289 | + throw new Exception("found multi rows with condition,but this func expected one row"); |
289 | } | 290 | } |
290 | } | 291 | } |
291 | 292 | ||
@@ -402,6 +403,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -402,6 +403,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
402 | /** | 403 | /** |
403 | * 添加 | 404 | * 添加 |
404 | */ | 405 | */ |
406 | + @Transactional(rollbackFor = {Exception.class, Error.class}) | ||
405 | public BigInteger addEntityForAutoincrementId(T entity) { | 407 | public BigInteger addEntityForAutoincrementId(T entity) { |
406 | StringBuffer sqlForLog = new StringBuffer("INSERT INTO "+this.getTableSql()+"("); | 408 | StringBuffer sqlForLog = new StringBuffer("INSERT INTO "+this.getTableSql()+"("); |
407 | StringBuffer sqlValueForLog = new StringBuffer(") VALUES ("); | 409 | StringBuffer sqlValueForLog = new StringBuffer(") VALUES ("); |
@@ -474,7 +476,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -474,7 +476,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
474 | */ | 476 | */ |
475 | public int deleteEntityByCondition(List<Object[]> condition) throws Exception{ | 477 | public int deleteEntityByCondition(List<Object[]> condition) throws Exception{ |
476 | if (null == condition || condition.size() == 0) { | 478 | if (null == condition || condition.size() == 0) { |
477 | - throw new Exception("没有传入条件,请至少传入一个筛选条件"); | 479 | + throw new Exception("params[condition] is empty"); |
478 | } | 480 | } |
479 | 481 | ||
480 | List<Object> list = new ArrayList<Object>(); | 482 | List<Object> list = new ArrayList<Object>(); |
@@ -491,7 +493,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -491,7 +493,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
491 | */ | 493 | */ |
492 | public int deleteEntityBySql(String sqlCondition) throws Exception{ | 494 | public int deleteEntityBySql(String sqlCondition) throws Exception{ |
493 | if("".equals(sqlCondition)) { | 495 | if("".equals(sqlCondition)) { |
494 | - throw new Exception("没有传入条件,请至少传入一个筛选条件"); | 496 | + throw new Exception("params[sqlCondition] is empty"); |
495 | } | 497 | } |
496 | return jdbcTemplateWrite.update( "DELETE FROM "+this.getTableSql()+" WHERE " + sqlCondition); | 498 | return jdbcTemplateWrite.update( "DELETE FROM "+this.getTableSql()+" WHERE " + sqlCondition); |
497 | } | 499 | } |
@@ -521,32 +523,16 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -521,32 +523,16 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
521 | */ | 523 | */ |
522 | public int updateEntityById(List<Object[]> changeList, ID id) throws Exception{ | 524 | public int updateEntityById(List<Object[]> changeList, ID id) throws Exception{ |
523 | if(null == id){ | 525 | if(null == id){ |
524 | - throw new Exception("请求条件异常,没有传入主键ID!"); | 526 | + throw new Exception("params[id] is null"); |
527 | + } | ||
528 | + if (null == changeList || changeList.size() == 0) { | ||
529 | + throw new Exception("params[changeList] is empty"); | ||
525 | } | 530 | } |
526 | 531 | ||
527 | StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET"); | 532 | StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET"); |
528 | StringBuffer pql = new StringBuffer(sql.toString()); | 533 | StringBuffer pql = new StringBuffer(sql.toString()); |
529 | List<Object> list = new ArrayList<Object>(); | 534 | List<Object> list = new ArrayList<Object>(); |
530 | - for (int i = 0, iLen = changeList.size(); i < iLen; i++) { | ||
531 | - String name = (String) changeList.get(i)[0]; | ||
532 | - Object value = changeList.get(i)[1]; | ||
533 | - String variationOpt = "="; | ||
534 | - if (changeList.get(i).length > 2) | ||
535 | - variationOpt = (String)changeList.get(i)[2]; | ||
536 | - if (variationOpt.equals("=")) { | ||
537 | - sql.append(" " + name + " = ?,"); | ||
538 | - list.add(value); | ||
539 | - if (value == null) { | ||
540 | - pql.append(" " + name + "=null,"); | ||
541 | - } else { | ||
542 | - pql.append(" " + name + "=\"" + value.toString() + "\","); | ||
543 | - } | ||
544 | - } else { | ||
545 | - sql.append(" " + name + " = " + name + " + ?,"); | ||
546 | - list.add(value); | ||
547 | - pql.append(" " + name + " = " + name + " + " + value.toString() + ","); | ||
548 | - } | ||
549 | - } | 535 | + this.appendSetSql(sql, pql, list, changeList); |
550 | 536 | ||
551 | String where = " WHERE "+this.idTableFieldName+"=?"; | 537 | String where = " WHERE "+this.idTableFieldName+"=?"; |
552 | String updateSql = sql.substring(0, sql.length()-1)+where; | 538 | String updateSql = sql.substring(0, sql.length()-1)+where; |
@@ -560,16 +546,16 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -560,16 +546,16 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
560 | */ | 546 | */ |
561 | public int updateEntityByCondition(List<Object[]> updateObj, List<Object[]> condition) throws Exception{ | 547 | public int updateEntityByCondition(List<Object[]> updateObj, List<Object[]> condition) throws Exception{ |
562 | if (null == updateObj || updateObj.size() == 0) { | 548 | if (null == updateObj || updateObj.size() == 0) { |
563 | - throw new Exception("请求条件异常,请求条件List<Object[]> updateObj不能为空!"); | 549 | + throw new Exception("params[updateObj] is empty"); |
564 | } | 550 | } |
565 | if (null == condition || condition.size() == 0) { | 551 | if (null == condition || condition.size() == 0) { |
566 | - throw new Exception("请求条件异常,请求条件List<Object[]> condition不能为空!"); | 552 | + throw new Exception("params[condition] is empty"); |
567 | } | 553 | } |
568 | 554 | ||
569 | StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET"); | 555 | StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET"); |
570 | StringBuffer pql = new StringBuffer(sql.toString()); | 556 | StringBuffer pql = new StringBuffer(sql.toString()); |
571 | List<Object> list = new ArrayList<Object>(); | 557 | List<Object> list = new ArrayList<Object>(); |
572 | - this.appendSql(sql, pql, list, updateObj); | 558 | + this.appendSetSql(sql, pql, list, updateObj); |
573 | 559 | ||
574 | StringBuffer where = new StringBuffer(""); | 560 | StringBuffer where = new StringBuffer(""); |
575 | StringBuffer pwhere = new StringBuffer(""); | 561 | StringBuffer pwhere = new StringBuffer(""); |
@@ -585,16 +571,16 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -585,16 +571,16 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
585 | */ | 571 | */ |
586 | public int updateEntityBySql(List<Object[]> updateObj, String sqlCondition) throws Exception{ | 572 | public int updateEntityBySql(List<Object[]> updateObj, String sqlCondition) throws Exception{ |
587 | if (null == updateObj || updateObj.size() == 0) { | 573 | if (null == updateObj || updateObj.size() == 0) { |
588 | - throw new Exception("请求条件异常,请求条件List<Object[]> updateObj不能为空!"); | 574 | + throw new Exception("params[updateObj] is empty"); |
589 | } | 575 | } |
590 | if ("".equals(sqlCondition)) { | 576 | if ("".equals(sqlCondition)) { |
591 | - throw new Exception("请求条件异常,请求条件sqlCondition不能为空!"); | 577 | + throw new Exception("params[sqlCondition] is empty"); |
592 | } | 578 | } |
593 | 579 | ||
594 | StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET"); | 580 | StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET"); |
595 | StringBuffer pql = new StringBuffer(sql.toString()); | 581 | StringBuffer pql = new StringBuffer(sql.toString()); |
596 | List<Object> list = new ArrayList<Object>(); | 582 | List<Object> list = new ArrayList<Object>(); |
597 | - this.appendSql(sql, pql, list, updateObj); | 583 | + this.appendSetSql(sql, pql, list, updateObj); |
598 | 584 | ||
599 | String updateSql = sql.toString().substring(0, sql.length()-1) + " WHERE "+sqlCondition; | 585 | String updateSql = sql.toString().substring(0, sql.length()-1) + " WHERE "+sqlCondition; |
600 | return jdbcTemplateWrite.update(updateSql, list.toArray()); | 586 | return jdbcTemplateWrite.update(updateSql, list.toArray()); |
@@ -685,7 +671,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -685,7 +671,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
685 | if(tempList != null && tempList.size() == 1){ | 671 | if(tempList != null && tempList.size() == 1){ |
686 | return tempList.get(0); | 672 | return tempList.get(0); |
687 | }else{ | 673 | }else{ |
688 | - throw new Exception("数据库存在多条记录满足条件"); | 674 | + throw new Exception("found multi rows with condition,but this func expected one row"); |
689 | } | 675 | } |
690 | } | 676 | } |
691 | 677 | ||
@@ -701,7 +687,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -701,7 +687,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
701 | if(tempList != null && tempList.size() == 1){ | 687 | if(tempList != null && tempList.size() == 1){ |
702 | return tempList.get(0); | 688 | return tempList.get(0); |
703 | }else{ | 689 | }else{ |
704 | - throw new Exception("数据库存在多条记录满足条件"); | 690 | + throw new Exception("found multi rows with condition,but this func expected one row"); |
705 | } | 691 | } |
706 | } | 692 | } |
707 | 693 |