Commit a3f02b777c4fe547a7f40833bbfac425c64fe48a
1 parent
abaa9ea8
Exists in
master
and in
2 other branches
1. 增加page bean 2. 增加bean切面接口
Showing
4 changed files
with
65 additions
and
12 deletions
Show diff stats
build.gradle
| @@ -51,7 +51,7 @@ uploadArchives { | @@ -51,7 +51,7 @@ uploadArchives { | ||
| 51 | authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) | 51 | authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) |
| 52 | } | 52 | } |
| 53 | pom.project { | 53 | pom.project { |
| 54 | - version '2.0.4' | 54 | + version '2.1.0' |
| 55 | artifactId ARTIFACT_Id | 55 | artifactId ARTIFACT_Id |
| 56 | groupId GROUP_ID | 56 | groupId GROUP_ID |
| 57 | packaging TYPE | 57 | packaging TYPE |
src/main/java/com/taover/repository/CustomJdbcTemplate.java
| @@ -110,7 +110,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -110,7 +110,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
| 110 | * @param name 转换前的驼峰式命名的字符串 | 110 | * @param name 转换前的驼峰式命名的字符串 |
| 111 | * @return 转换后下划线大写方式命名的字符串 | 111 | * @return 转换后下划线大写方式命名的字符串 |
| 112 | */ | 112 | */ |
| 113 | - public String camelToUnderline(String name) { | 113 | + private String camelToUnderline(String name) { |
| 114 | StringBuilder result = new StringBuilder(); | 114 | StringBuilder result = new StringBuilder(); |
| 115 | if (name != null && name.length() > 0) { | 115 | if (name != null && name.length() > 0) { |
| 116 | // 将第一个字符处理成大写 | 116 | // 将第一个字符处理成大写 |
| @@ -135,7 +135,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -135,7 +135,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
| 135 | * @param name 转换前的下划线大写方式命名的字符串 | 135 | * @param name 转换前的下划线大写方式命名的字符串 |
| 136 | * @return 转换后的驼峰式命名的字符串 | 136 | * @return 转换后的驼峰式命名的字符串 |
| 137 | */ | 137 | */ |
| 138 | - public String underlineToCamel(String name) { | 138 | + private String underlineToCamel(String name) { |
| 139 | StringBuilder result = new StringBuilder(); | 139 | StringBuilder result = new StringBuilder(); |
| 140 | // 快速检查 | 140 | // 快速检查 |
| 141 | if (name == null || name.isEmpty()) { | 141 | if (name == null || name.isEmpty()) { |
| @@ -165,7 +165,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -165,7 +165,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
| 165 | return result.toString(); | 165 | return result.toString(); |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | - public void appendWhereCondition(StringBuffer sql, StringBuffer pql, List<Object> list, List<Object[]> condition) { | 168 | + private void appendWhereCondition(StringBuffer sql, StringBuffer pql, List<Object> list, List<Object[]> condition) { |
| 169 | if (condition == null || condition.size() == 0) return; | 169 | if (condition == null || condition.size() == 0) return; |
| 170 | Object[] con = condition.get(0); | 170 | Object[] con = condition.get(0); |
| 171 | int iLen = condition.size(); | 171 | int iLen = condition.size(); |
| @@ -191,7 +191,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -191,7 +191,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
| 191 | } | 191 | } |
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | - public void appendWhereConditionForCount(StringBuffer sql, List<Object[]> condition) { | 194 | + private void appendWhereConditionForCount(StringBuffer sql, List<Object[]> condition) { |
| 195 | if (condition == null || condition.size() == 0) return; | 195 | if (condition == null || condition.size() == 0) return; |
| 196 | Object[] con = condition.get(0); | 196 | Object[] con = condition.get(0); |
| 197 | int iLen = condition.size(); | 197 | int iLen = condition.size(); |
| @@ -209,7 +209,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -209,7 +209,7 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
| 209 | } | 209 | } |
| 210 | } | 210 | } |
| 211 | 211 | ||
| 212 | - public void appendSql(StringBuffer sql, StringBuffer pql, List<Object> list, List<Object[]> obj) { | 212 | + private void appendSql(StringBuffer sql, StringBuffer pql, List<Object> list, List<Object[]> obj) { |
| 213 | for (Object[] arg : obj) { | 213 | for (Object[] arg : obj) { |
| 214 | String opt = "="; | 214 | String opt = "="; |
| 215 | if (arg.length > 2) { | 215 | if (arg.length > 2) { |
| @@ -625,6 +625,20 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | @@ -625,6 +625,20 @@ public class CustomJdbcTemplate<T, ID extends Serializable> { | ||
| 625 | return UtilsSql.createPage(page, Integer.valueOf(countData.get("rows").toString()), queryData); | 625 | return UtilsSql.createPage(page, Integer.valueOf(countData.get("rows").toString()), queryData); |
| 626 | } | 626 | } |
| 627 | 627 | ||
| 628 | + public <E> Map<String, Object> getBeanPageData(String coreSql, String orderByPartSql, Integer page, Integer pageSize, Class<E> beanClass){ | ||
| 629 | + //构造查询语句 | ||
| 630 | + String querySql = coreSql+orderByPartSql+UtilsSql.getLimitCondition(page, pageSize); | ||
| 631 | + | ||
| 632 | + //构造统计计数语句 | ||
| 633 | + String countSql = "select count(*) rows from ("+coreSql+" ) t "; | ||
| 634 | + | ||
| 635 | + //执行查询 | ||
| 636 | + List<E> queryData = new ArrayList<E>(); | ||
| 637 | + Map<String, Object> countData = new HashMap<String, Object>(); | ||
| 638 | + queryData = this.jdbcTemplateRead.queryForList(querySql, beanClass); | ||
| 639 | + countData = this.jdbcTemplateRead.queryForMap(countSql); | ||
| 640 | + return UtilsSql.createPage(page, Integer.valueOf(countData.get("rows").toString()), queryData); | ||
| 641 | + } | ||
| 628 | 642 | ||
| 629 | /** | 643 | /** |
| 630 | * 按主键查询 | 644 | * 按主键查询 |
src/main/java/com/taover/repository/CustomJdbcTemplateRowMapper.java
| 1 | package com.taover.repository; | 1 | package com.taover.repository; |
| 2 | 2 | ||
| 3 | import java.lang.reflect.Field; | 3 | import java.lang.reflect.Field; |
| 4 | +import java.lang.reflect.Method; | ||
| 4 | import java.sql.ResultSet; | 5 | import java.sql.ResultSet; |
| 5 | import java.sql.SQLException; | 6 | import java.sql.SQLException; |
| 6 | import java.util.Map; | 7 | import java.util.Map; |
| @@ -8,24 +9,43 @@ import java.util.Map; | @@ -8,24 +9,43 @@ import java.util.Map; | ||
| 8 | import org.springframework.jdbc.core.RowMapper; | 9 | import org.springframework.jdbc.core.RowMapper; |
| 9 | import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSetMetaData; | 10 | import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSetMetaData; |
| 10 | 11 | ||
| 11 | -public class CustomJdbcTemplateRowMapper implements RowMapper{ | ||
| 12 | - private Class classInfo; | 12 | +public class CustomJdbcTemplateRowMapper <E> implements RowMapper{ |
| 13 | + private Class<E> classInfo; | ||
| 13 | private Map<String, String> tableToBeanMap; | 14 | private Map<String, String> tableToBeanMap; |
| 14 | 15 | ||
| 15 | - public CustomJdbcTemplateRowMapper(Class classInfo, Map<String, String> tableToBeanMap) { | 16 | + public CustomJdbcTemplateRowMapper(Class<E> classInfo, Map<String, String> tableToBeanMap) { |
| 16 | this.classInfo = classInfo; | 17 | this.classInfo = classInfo; |
| 17 | this.tableToBeanMap = tableToBeanMap; | 18 | this.tableToBeanMap = tableToBeanMap; |
| 18 | } | 19 | } |
| 19 | 20 | ||
| 20 | @Override | 21 | @Override |
| 21 | - public Object mapRow(ResultSet rs, int index) throws SQLException { | ||
| 22 | - Object targetObj; | 22 | + public E mapRow(ResultSet rs, int index) throws SQLException { |
| 23 | + boolean hasImplementPointCut = false; | ||
| 24 | + Class[] interfaceArr = this.classInfo.getInterfaces(); | ||
| 25 | + for(int i=0; i<interfaceArr.length; ++i){ | ||
| 26 | + if(interfaceArr[i].getName().equals("com.taover.repository.EntityPointCut")){ | ||
| 27 | + hasImplementPointCut = true; | ||
| 28 | + break; | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + E targetObj; | ||
| 23 | try { | 33 | try { |
| 24 | targetObj = this.classInfo.newInstance(); | 34 | targetObj = this.classInfo.newInstance(); |
| 25 | } catch (Exception e) { | 35 | } catch (Exception e) { |
| 26 | throw new RuntimeException(e); | 36 | throw new RuntimeException(e); |
| 27 | } | 37 | } |
| 28 | - | 38 | + |
| 39 | + if(hasImplementPointCut){ | ||
| 40 | + try{ | ||
| 41 | + Method beforeMethod = this.classInfo.getDeclaredMethod("before"); | ||
| 42 | + beforeMethod.setAccessible(true); | ||
| 43 | + beforeMethod.invoke(targetObj); | ||
| 44 | + }catch(Exception e){ | ||
| 45 | + e.printStackTrace(); | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + | ||
| 29 | ResultSetWrappingSqlRowSetMetaData wapping = new ResultSetWrappingSqlRowSetMetaData(rs.getMetaData()); | 49 | ResultSetWrappingSqlRowSetMetaData wapping = new ResultSetWrappingSqlRowSetMetaData(rs.getMetaData()); |
| 30 | int columnCount = wapping.getColumnCount(); | 50 | int columnCount = wapping.getColumnCount(); |
| 31 | for (int i = 1; i<=columnCount; i++) { | 51 | for (int i = 1; i<=columnCount; i++) { |
| @@ -42,6 +62,17 @@ public class CustomJdbcTemplateRowMapper implements RowMapper{ | @@ -42,6 +62,17 @@ public class CustomJdbcTemplateRowMapper implements RowMapper{ | ||
| 42 | e.printStackTrace(); | 62 | e.printStackTrace(); |
| 43 | } | 63 | } |
| 44 | } | 64 | } |
| 65 | + | ||
| 66 | + if(hasImplementPointCut){ | ||
| 67 | + try{ | ||
| 68 | + Method afterMethod = this.classInfo.getDeclaredMethod("after"); | ||
| 69 | + afterMethod.setAccessible(true); | ||
| 70 | + afterMethod.invoke(targetObj); | ||
| 71 | + }catch(Exception e){ | ||
| 72 | + e.printStackTrace(); | ||
| 73 | + } | ||
| 74 | + } | ||
| 75 | + | ||
| 45 | return targetObj; | 76 | return targetObj; |
| 46 | } | 77 | } |
| 47 | } | 78 | } |