Commit ab3b0c973a42bd9fc900a8826a84e7c6c0c7907e

Authored by unknown
1 parent 1adcb6de

1.repository add方法增加事务、更新参数构造优化、exception info优化

build.gradle
... ... @@ -55,7 +55,7 @@ uploadArchives {
55 55 authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
56 56 }
57 57 pom.project {
58   - version '2.1.8'
  58 + version '2.1.9'
59 59 artifactId ARTIFACT_Id
60 60 groupId GROUP_ID
61 61 packaging TYPE
... ...
src/main/java/com/taover/repository/CustomJdbcTemplate.java
... ... @@ -16,6 +16,7 @@ import javax.persistence.Id;
16 16 import javax.persistence.Table;
17 17  
18 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 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 214 for (Object[] arg : obj) {
214   - String opt = "=";
215 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 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&lt;T, ID extends Serializable&gt; {
269 270 if(tempList != null && tempList.size() == 1){
270 271 return tempList.get(0);
271 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&lt;T, ID extends Serializable&gt; {
285 286 if(tempList != null && tempList.size() == 1){
286 287 return tempList.get(0);
287 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&lt;T, ID extends Serializable&gt; {
402 403 /**
403 404 * 添加
404 405 */
  406 + @Transactional(rollbackFor = {Exception.class, Error.class})
405 407 public BigInteger addEntityForAutoincrementId(T entity) {
406 408 StringBuffer sqlForLog = new StringBuffer("INSERT INTO "+this.getTableSql()+"(");
407 409 StringBuffer sqlValueForLog = new StringBuffer(") VALUES (");
... ... @@ -474,7 +476,7 @@ public class CustomJdbcTemplate&lt;T, ID extends Serializable&gt; {
474 476 */
475 477 public int deleteEntityByCondition(List<Object[]> condition) throws Exception{
476 478 if (null == condition || condition.size() == 0) {
477   - throw new Exception("没有传入条件,请至少传入一个筛选条件");
  479 + throw new Exception("params[condition] is empty");
478 480 }
479 481  
480 482 List<Object> list = new ArrayList<Object>();
... ... @@ -491,7 +493,7 @@ public class CustomJdbcTemplate&lt;T, ID extends Serializable&gt; {
491 493 */
492 494 public int deleteEntityBySql(String sqlCondition) throws Exception{
493 495 if("".equals(sqlCondition)) {
494   - throw new Exception("没有传入条件,请至少传入一个筛选条件");
  496 + throw new Exception("params[sqlCondition] is empty");
495 497 }
496 498 return jdbcTemplateWrite.update( "DELETE FROM "+this.getTableSql()+" WHERE " + sqlCondition);
497 499 }
... ... @@ -521,32 +523,16 @@ public class CustomJdbcTemplate&lt;T, ID extends Serializable&gt; {
521 523 */
522 524 public int updateEntityById(List<Object[]> changeList, ID id) throws Exception{
523 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 532 StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET");
528 533 StringBuffer pql = new StringBuffer(sql.toString());
529 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 537 String where = " WHERE "+this.idTableFieldName+"=?";
552 538 String updateSql = sql.substring(0, sql.length()-1)+where;
... ... @@ -560,16 +546,16 @@ public class CustomJdbcTemplate&lt;T, ID extends Serializable&gt; {
560 546 */
561 547 public int updateEntityByCondition(List<Object[]> updateObj, List<Object[]> condition) throws Exception{
562 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 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 555 StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET");
570 556 StringBuffer pql = new StringBuffer(sql.toString());
571 557 List<Object> list = new ArrayList<Object>();
572   - this.appendSql(sql, pql, list, updateObj);
  558 + this.appendSetSql(sql, pql, list, updateObj);
573 559  
574 560 StringBuffer where = new StringBuffer("");
575 561 StringBuffer pwhere = new StringBuffer("");
... ... @@ -585,16 +571,16 @@ public class CustomJdbcTemplate&lt;T, ID extends Serializable&gt; {
585 571 */
586 572 public int updateEntityBySql(List<Object[]> updateObj, String sqlCondition) throws Exception{
587 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 576 if ("".equals(sqlCondition)) {
591   - throw new Exception("请求条件异常,请求条件sqlCondition不能为空!");
  577 + throw new Exception("params[sqlCondition] is empty");
592 578 }
593 579  
594 580 StringBuffer sql = new StringBuffer("UPDATE "+this.getTableSql()+" SET");
595 581 StringBuffer pql = new StringBuffer(sql.toString());
596 582 List<Object> list = new ArrayList<Object>();
597   - this.appendSql(sql, pql, list, updateObj);
  583 + this.appendSetSql(sql, pql, list, updateObj);
598 584  
599 585 String updateSql = sql.toString().substring(0, sql.length()-1) + " WHERE "+sqlCondition;
600 586 return jdbcTemplateWrite.update(updateSql, list.toArray());
... ... @@ -685,7 +671,7 @@ public class CustomJdbcTemplate&lt;T, ID extends Serializable&gt; {
685 671 if(tempList != null && tempList.size() == 1){
686 672 return tempList.get(0);
687 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&lt;T, ID extends Serializable&gt; {
701 687 if(tempList != null && tempList.size() == 1){
702 688 return tempList.get(0);
703 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  
... ...