From be76de40e131347ba3b262136e90c525023f2bb7 Mon Sep 17 00:00:00 2001 From: alex yang Date: Mon, 19 Mar 2018 16:39:10 -0700 Subject: [PATCH] Use Guava and Apache lang3 instead of camel-name-utils --- .gitignore | 3 ++- pom.xml | 14 +++++++--- .../jdbcTemplateTool/JdbcTemplateTool.java | 3 --- .../jdbcTemplateTool/utils/IdUtils.java | 27 ++++++++++++++++--- .../jdbcTemplateTool/utils/ModelSqlUtils.java | 13 ++++----- 5 files changed, 41 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 224e046..84d9d31 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .settings .classpath .project -target \ No newline at end of file +target +jdbctemplatetool.iml \ No newline at end of file diff --git a/pom.xml b/pom.xml index 801e06d..8d3db01 100644 --- a/pom.xml +++ b/pom.xml @@ -87,11 +87,19 @@ Based on those questions I create JdbcTemplateTool which can provide these featu 5.1.19 test + + + com.google.guava + guava + 19.0 + + - org.crazycake - camel-name-utils - 1.0.0-RELEASE + org.apache.commons + commons-lang3 + 3.7 + diff --git a/src/main/java/org/crazycake/jdbcTemplateTool/JdbcTemplateTool.java b/src/main/java/org/crazycake/jdbcTemplateTool/JdbcTemplateTool.java index 1e28206..2ada929 100644 --- a/src/main/java/org/crazycake/jdbcTemplateTool/JdbcTemplateTool.java +++ b/src/main/java/org/crazycake/jdbcTemplateTool/JdbcTemplateTool.java @@ -74,7 +74,6 @@ public List list(String sql, Object[] params, Class clazz) { * get count * @param sql * @param params - * @param clazz * @return */ public int count(String sql, Object[] params) { @@ -103,8 +102,6 @@ public int count(String sql, Object[] params) { /** * 获取一个对象 * get object by id - * @param sql - * @param params * @param clazz * @return * @throws NoIdAnnotationFoundException diff --git a/src/main/java/org/crazycake/jdbcTemplateTool/utils/IdUtils.java b/src/main/java/org/crazycake/jdbcTemplateTool/utils/IdUtils.java index 9ad0565..e26b1d6 100644 --- a/src/main/java/org/crazycake/jdbcTemplateTool/utils/IdUtils.java +++ b/src/main/java/org/crazycake/jdbcTemplateTool/utils/IdUtils.java @@ -7,7 +7,8 @@ import javax.persistence.GenerationType; import javax.persistence.Id; -import org.crazycake.utils.CamelNameUtils; +import com.google.common.base.CaseFormat; +import org.apache.commons.lang3.StringUtils; public class IdUtils { @@ -31,7 +32,7 @@ public static String getAutoGeneratedId(Object po) throws SecurityException, NoS } //获取getter方法 - String getterName = "get" + CamelNameUtils.capitalize(f.getName()); + String getterName = "get" + StringUtils.capitalize(f.getName()); Method getter = po.getClass().getDeclaredMethod(getterName); Id idAnno = getter.getAnnotation(Id.class); @@ -60,9 +61,27 @@ public static String getAutoGeneratedId(Object po) throws SecurityException, NoS * @throws NoSuchMethodException */ public static void setAutoIncreamentIdValue(Object po,String autoGeneratedId,Object idValue) throws Exception, NoSuchMethodException{ - String setterName = "set" + CamelNameUtils.capitalize(autoGeneratedId); + String setterName = "set" + StringUtils.capitalize(autoGeneratedId); Method setter = po.getClass().getDeclaredMethod(setterName, idValue.getClass()); setter.invoke(po, idValue); } - + + /** + * Convert underscore style to camel style + * @param name + * @return + */ + public static String toCamel(String name) { + return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name); + } + + /** + * Convert camel style to underscore style + * @param name + * @return + */ + public static String toUnderscore(String name) { + return CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, name); + } + } diff --git a/src/main/java/org/crazycake/jdbcTemplateTool/utils/ModelSqlUtils.java b/src/main/java/org/crazycake/jdbcTemplateTool/utils/ModelSqlUtils.java index 3315396..1173b3a 100644 --- a/src/main/java/org/crazycake/jdbcTemplateTool/utils/ModelSqlUtils.java +++ b/src/main/java/org/crazycake/jdbcTemplateTool/utils/ModelSqlUtils.java @@ -10,11 +10,11 @@ import javax.persistence.Table; import javax.persistence.Transient; -import org.crazycake.jdbcTemplateTool.exception.NoColumnAnnotationFoundException; + import org.apache.commons.lang3.StringUtils; + import org.crazycake.jdbcTemplateTool.exception.NoColumnAnnotationFoundException; import org.crazycake.jdbcTemplateTool.exception.NoDefinedGetterException; import org.crazycake.jdbcTemplateTool.exception.NoIdAnnotationFoundException; import org.crazycake.jdbcTemplateTool.model.SqlParamsPairs; -import org.crazycake.utils.CamelNameUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -114,7 +114,7 @@ public static SqlParamsPairs getInsertFromObject(T po) throws Exception{ * @return */ private static Method getGetter(Class clazz, Field f){ - String getterName = "get" + CamelNameUtils.capitalize(f.getName()); + String getterName = "get" + StringUtils.capitalize(f.getName()); Method getter = null; try { getter = clazz.getMethod(getterName); @@ -126,7 +126,6 @@ private static Method getGetter(Class clazz, Field f){ /** * 从po类获取表名 - * @param po * @return */ private static String getTableName(Class clazz) { @@ -140,7 +139,7 @@ private static String getTableName(Class clazz) { } //if Table annotation is null String className = clazz.getName(); - return CamelNameUtils.camel2underscore(className.substring(className.lastIndexOf(".")+1)); + return IdUtils.toUnderscore(className.substring(className.lastIndexOf(".")+1)); } @@ -296,7 +295,6 @@ public static SqlParamsPairs getDeleteFromObject(Object po) throws Exception{ /** * 获取根据主键查对象的sql和参数 - * @param po * @param id * @return * @throws NoIdAnnotationFoundException @@ -357,7 +355,6 @@ public static SqlParamsPairs getGetFromObject(Class clazz,Object id) thro /** * use getter to guess column name, if there is annotation then use annotation value, if not then guess from field name * @param getter - * @param clazz * @param f * @return * @throws NoColumnAnnotationFoundException @@ -372,7 +369,7 @@ private static String getColumnNameFromGetter(Method getter,Field f){ if(columnName == null || "".equals(columnName)){ //如果没有列注解就用命名方式去猜 - columnName = CamelNameUtils.camel2underscore(f.getName()); + columnName = IdUtils.toUnderscore(f.getName()); } return columnName; }