本方法来源于jpa源码,
PhysicalNamingStrategy的子类SpringPhysicalNamingStrategy
将驼峰式字符串转换为带下划线的方法:
例如: appType转为 app_type
private String apply(String name) {
StringBuilder builder = new StringBuilder(name.replace('.', '_'));
for (int i = 1; i < builder.length() - 1; ++i) {
if (this.isUnderscoreRequired(builder.charAt(i - 1), builder.charAt(i), builder.charAt(i + 1))) {
builder.insert(i++, '_');
}
}
return builder.toString().toLowerCase(Locale.ROOT);
}
private boolean isUnderscoreRequired(char before, char current, char after) {
return Character.isLowerCase(before) && Character.isUpperCase(current) && Character.isLowerCase(after);
}
// 测试
// String name = "appType";
// name = testGpTable.apply(name);
// System.out.println("name = " + name);
// 输出结果:app_type
源码 jpa:
关注公众号,点击关于我,加入QQ群,私聊群主可以联系到我哦,群文件有Java面试以及框架如何使用pdf等免费资源!!!