beetlsql 命名修复

原创
2019/03/18 21:26
阅读数 140
import org.beetl.sql.core.UnderlinedNameConversion;
import org.beetl.sql.core.kit.StringKit;

/**
 * 
 */
public class YJUnderlinedNameConversion extends UnderlinedNameConversion {
   public String getPropertyName(Class<?> c, String colName) {
      return deCodeUnderlined(colName);
   }

   @Override
   public String getColName(Class<?> c,String attrName) {
      if(attrName.split("_").length > 1){
         return StringKit.enCodeUnderlined(attrName);
      }else{
         return attrName;
      }
   }

   // 大写字母前面加上下划线并转为全小写
   public static String enCodeUnderlined(String s) {
      char[] chars = StringKit.toLowerCaseFirstOne(s).toCharArray();
      StringBuilder temp = new StringBuilder();
      for (int i = 0; i < chars.length; i++) {
         if(Character.isUpperCase(chars[i])){
            temp.append("_");
         }
         temp.append(Character.toLowerCase(chars[i]));
      }
      return temp.toString();
   }

   public static String deCodeUnderlined(String str) {
      String[] splitArr = str.split("_");
      if(splitArr.length > 1){
         StringBuilder sb = new StringBuilder();
         for(int i = 0; i < splitArr.length; ++i) {
            if(i == 0) {
               sb.append(splitArr[0].toLowerCase());
            } else {
               sb.append(toUpperCaseFirstOne(splitArr[i].toLowerCase()));
            }
         }
         return sb.toString();
      }else{
         return str;
      }
   }

   public static String toUpperCaseFirstOne(String s) {
      return Character.isUpperCase(s.charAt(0))?s:Character.toUpperCase(s.charAt(0)) + s.substring(1);
   }
}

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部