package com.jsh.erp.utils; /** * @author jishenghua qq752718920 2018-10-7 15:26:27 */ public class ColumnPropertyUtil { /** * 将数据库字段转换成属性 */ public static String columnToProperty(String column) { StringBuilder result = new StringBuilder(); // 快速检查 if (StringUtil.isEmpty(column)) { // 没必要转换 return ""; } else if (!column.contains("_")) { // 不做转换 return column; } else { // 用下划线将原始字符串分割 String[] columns = column.split("_"); for (String columnSplit : columns) { // 跳过原始字符串中开头、结尾的下换线或双重下划线 if (StringUtil.isEmpty(columnSplit)) { continue; } // 处理真正的驼峰片段 if (result.length() == 0) { // 第一个驼峰片段,全部字母都小写 result.append(columnSplit.toLowerCase()); } else { // 其他的驼峰片段,首字母大写 result.append(columnSplit.substring(0, 1).toUpperCase()).append(columnSplit.substring(1).toLowerCase()); } } return result.toString(); } } /** * 驼峰转换下划线 */ public static String propertyToColumn(String property) { if (StringUtil.isEmpty(property)) { return ""; } StringBuilder column = new StringBuilder(); column.append(property.substring(0, 1).toLowerCase()); for (int i = 1; i < property.length(); i++) { String s = property.substring(i, i + 1); // 在小写字母前添加下划线 if (!Character.isDigit(s.charAt(0)) && s.equals(s.toUpperCase())) { column.append("_"); } // 其他字符直接转成小写 column.append(s.toLowerCase()); } return column.toString(); } }