From 087ddd34422083e82f79f2764de1e7bd97683c8b Mon Sep 17 00:00:00 2001 From: natsufumij Date: Fri, 10 Nov 2023 10:41:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=BD=93=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E5=87=BD=E6=95=B0=E5=AD=97=E6=AE=B5=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E4=B8=8E=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=97=E6=AE=B5=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=A1=BA=E5=BA=8F=E4=B8=8D=E4=B8=80=E8=87=B4=E6=97=B6?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E5=87=BA=E7=8E=B0=E7=9A=84=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/FlexDefaultResultSetHandler.java | 44 +------------------ 1 file changed, 2 insertions(+), 42 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexDefaultResultSetHandler.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexDefaultResultSetHandler.java index bf9a84e8..f57ec50a 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexDefaultResultSetHandler.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexDefaultResultSetHandler.java @@ -15,6 +15,7 @@ */ package com.mybatisflex.core.mybatis; +import com.mybatisflex.core.util.StringUtil; import org.apache.ibatis.annotations.AutomapConstructor; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.binding.MapperMethod.ParamMap; @@ -763,53 +764,12 @@ public class FlexDefaultResultSetHandler extends DefaultResultSetHandler { ? objectFactory.create(resultType, constructorArgTypes, constructorArgs) : null; } - /** - *

将驼峰转为下划线

- *
{@code
-     *  var word = underlineByhump("helloWorld")
-     *  //word == "hello_world"
-     * }
- * @author natsufumij - */ - public static String underlineByhump(String str) { - if (str == null) { - return null; - } - StringBuilder sb = new StringBuilder(); - // 前置字符是否大写 - boolean preCharIsUpperCase = true; - // 当前字符是否大写 - boolean curreCharIsUpperCase = true; - // 下一字符是否大写 - boolean nexteCharIsUpperCase = true; - for (int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - if (i > 0) { - preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); - } else { - preCharIsUpperCase = false; - } - curreCharIsUpperCase = Character.isUpperCase(c); - if (i < (str.length() - 1)) { - nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); - } - if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { - sb.append("_"); - } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { - sb.append("_"); - } - sb.append(Character.toLowerCase(c)); - } - return sb.toString(); - } - - private boolean applyColumnOrderBasedConstructorAutomapping(ResultSetWrapper rsw, List> constructorArgTypes, List constructorArgs, Constructor constructor, boolean foundValues) throws SQLException { for (int i = 0; i < constructor.getParameterTypes().length; i++) { Class parameterType = constructor.getParameterTypes()[i]; Parameter parameter = constructor.getParameters()[i]; - String columnName = underlineByhump(parameter.getName()); + String columnName = StringUtil.camelToUnderline(parameter.getName()); TypeHandler typeHandler = rsw.getTypeHandler(parameterType, columnName); Object value = typeHandler.getResult(rsw.getResultSet(), columnName); constructorArgTypes.add(parameterType);