CamelColumnMapperProvider.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package org.ssssssss.magicapi.provider.impl;
  2. import org.ssssssss.magicapi.provider.ColumnMapperProvider;
  3. /**
  4. * 驼峰命名转换
  5. */
  6. public class CamelColumnMapperProvider implements ColumnMapperProvider {
  7. @Override
  8. public String name() {
  9. return "camel";
  10. }
  11. @Override
  12. public String mapping(String columnName) {
  13. if (columnName == null || !columnName.contains("_")) {
  14. return columnName;
  15. }
  16. columnName = columnName.toLowerCase();
  17. boolean upperCase = false;
  18. StringBuilder sb = new StringBuilder();
  19. for (int i = 0; i < columnName.length(); i++) {
  20. char ch = columnName.charAt(i);
  21. if (ch == '_') {
  22. upperCase = true;
  23. } else if (upperCase) {
  24. sb.append(Character.toUpperCase(ch));
  25. upperCase = false;
  26. } else {
  27. sb.append(ch);
  28. }
  29. }
  30. return sb.toString();
  31. }
  32. @Override
  33. public String unmapping(String name) {
  34. StringBuilder sb = new StringBuilder();
  35. for (int i = 0; i < name.length(); i++) {
  36. char ch = name.charAt(i);
  37. if (Character.isUpperCase(ch)) {
  38. sb.append("_");
  39. }
  40. sb.append(Character.toLowerCase(ch));
  41. }
  42. return sb.toString();
  43. }
  44. }