diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java index 5a5ece73d2cd..bfc95dfaa9bf 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java @@ -247,16 +247,15 @@ protected String underscoreName(String name) { if (!StringUtils.hasLength(name)) { return ""; } + StringBuilder result = new StringBuilder(); - result.append(lowerCaseName(name.substring(0, 1))); - for (int i = 1; i < name.length(); i++) { - String s = name.substring(i, i + 1); - String slc = lowerCaseName(s); - if (!s.equals(slc)) { - result.append("_").append(slc); + for (int i = 0; i < name.length(); i++) { + char s = name.charAt(i); + if (Character.isUpperCase(s)) { + result.append('_').append(Character.toLowerCase(s)); } else { - result.append(s); + result.append(Character.toLowerCase(s)); } } return result.toString();