Commit 4631c60c1e611af9920cce1def972be7c816762a
1 parent
94117321
Exists in
master
and in
2 other branches
1.optimized query func
Showing
2 changed files
with
31 additions
and
5 deletions
Show diff stats
build.gradle
src/main/java/com/taover/repository/CustomJdbcTemplate.java
| ... | ... | @@ -601,11 +601,24 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { |
| 601 | 601 | } |
| 602 | 602 | |
| 603 | 603 | public Map<String, Object> getPageData(String coreSql, String orderByPartSql, Integer page, Integer pageSize){ |
| 604 | + int fromIndex = coreSql.toUpperCase().indexOf("FROM"); | |
| 605 | + String selectSql = ""; | |
| 606 | + String fromAndWhereSql = ""; | |
| 607 | + if(fromIndex > -1) { | |
| 608 | + selectSql = coreSql.substring(0, fromIndex); | |
| 609 | + fromAndWhereSql = coreSql.substring(fromIndex, coreSql.length()); | |
| 610 | + }else { | |
| 611 | + return UtilsSql.createPage(page, pageSize, 0, new ArrayList<Object>()); | |
| 612 | + } | |
| 613 | + return this.getPageData(selectSql, fromAndWhereSql, orderByPartSql, page, pageSize); | |
| 614 | + } | |
| 615 | + | |
| 616 | + public Map<String, Object> getPageData(String selectSql, String fromAndWhereSql, String orderByPartSql, Integer page, Integer pageSize){ | |
| 604 | 617 | //构造查询语句 |
| 605 | - String querySql = coreSql+orderByPartSql+UtilsSql.getLimitCondition(page, pageSize); | |
| 618 | + String querySql = selectSql+" "+fromAndWhereSql+" "+orderByPartSql+" "+UtilsSql.getLimitCondition(page, pageSize); | |
| 606 | 619 | |
| 607 | 620 | //构造统计计数语句 |
| 608 | - String countSql = "select count(*) rows from ("+coreSql+" ) t "; | |
| 621 | + String countSql = "select count(*) rows from ( select 1 "+fromAndWhereSql+" ) t "; | |
| 609 | 622 | |
| 610 | 623 | //执行查询 |
| 611 | 624 | List<Map<String, Object>> queryData = new ArrayList<Map<String, Object>>(); |
| ... | ... | @@ -616,11 +629,24 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { |
| 616 | 629 | } |
| 617 | 630 | |
| 618 | 631 | public <E> Map<String, Object> getBeanPageData(String coreSql, String orderByPartSql, Integer page, Integer pageSize, Class<E> beanClass){ |
| 632 | + int fromIndex = coreSql.toUpperCase().indexOf("FROM"); | |
| 633 | + String selectSql = ""; | |
| 634 | + String fromAndWhereSql = ""; | |
| 635 | + if(fromIndex > -1) { | |
| 636 | + selectSql = coreSql.substring(0, fromIndex); | |
| 637 | + fromAndWhereSql = coreSql.substring(fromIndex, coreSql.length()); | |
| 638 | + }else { | |
| 639 | + return UtilsSql.createPage(page, pageSize, 0, new ArrayList<Object>()); | |
| 640 | + } | |
| 641 | + return this.getPageData(selectSql, fromAndWhereSql, orderByPartSql, page, pageSize, beanClass); | |
| 642 | + } | |
| 643 | + | |
| 644 | + public <E> Map<String, Object> getPageData(String selectSql, String fromAndWhereSql, String orderByPartSql, Integer page, Integer pageSize, Class<E> beanClass){ | |
| 619 | 645 | //构造查询语句 |
| 620 | - String querySql = coreSql+orderByPartSql+UtilsSql.getLimitCondition(page, pageSize); | |
| 646 | + String querySql = selectSql+" "+fromAndWhereSql+" "+orderByPartSql+" "+UtilsSql.getLimitCondition(page, pageSize); | |
| 621 | 647 | |
| 622 | 648 | //构造统计计数语句 |
| 623 | - String countSql = "select count(*) rows from ("+coreSql+" ) t "; | |
| 649 | + String countSql = "select count(*) rows from ( select 1 "+fromAndWhereSql+" ) t "; | |
| 624 | 650 | |
| 625 | 651 | //执行查询 |
| 626 | 652 | List<E> queryData = new ArrayList<E>(); | ... | ... |