字符串转小驼峰:
public static void camelCaseName(String name, StringBuilder result) {
try {
result.setLength(0);
for (int i = 0; i < name.length(); ++i) {
char c = name.charAt(i);
if (c == '_') {
c = name.charAt(++i);
result.append(Character.toUpperCase(c));
} else {
result.append(Character.toLowerCase(c));
}
}
} catch (StringIndexOutOfBoundsException e) {
}
}
CamelCaseKeyMap(小驼峰):
import java.util.LinkedHashMap;
public class CamelCaseKeyMap extends LinkedHashMap<String, Object> {
private static final long serialVersionUID = -4380802260759119767L;
private StringBuilder camelCaseNameKeyBuff;
private boolean isCamelCaseNameKey;
public CamelCaseKeyMap() {
this(true);
}
public CamelCaseKeyMap(boolean isCamelCaseNameKey) {
this.isCamelCaseNameKey = isCamelCaseNameKey;
if (isCamelCaseNameKey) {
camelCaseNameKeyBuff = new StringBuilder(15);
}
}
@Override
public Object put(String key, Object value) {
if (isCamelCaseNameKey) {
if (!UtilString.isCamelCase(key)) {
UtilString.camelCaseName((String) key, camelCaseNameKeyBuff);
return super.put(camelCaseNameKeyBuff.toString(), value);
} else {
return super.put(key, value);
}
} else {
return super.put(key, value);
}
}
public Object putNoRule(String key, Object value) {
return super.put(key, value);
}
public void setCamelCaseNameKey(boolean isCamelCaseNameKey) {
this.isCamelCaseNameKey = isCamelCaseNameKey;
}
}
Tips:
mybatis查询返回值可以用CamelCaseKeyMap,自动把数据库下划线命名变量转为驼峰命名变量
<select id="XXX" resultType="CamelCaseKeyMap">