QueryUtils.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.boman.system.common;
  2. /**
  3. * @author shiqian
  4. * @description
  5. * @date 2021年03月22日 11:42
  6. **/
  7. public class QueryUtils {
  8. public static String replaceVariables(String sql, User user) {
  9. if (user == null) {
  10. return sql;
  11. } else if (sql == null) {
  12. return null;
  13. } else {
  14. StringBuilder sb = new StringBuilder();
  15. int p = 0;
  16. while (p < sql.length()) {
  17. int p1 = sql.indexOf("$", p);
  18. if (p1 > -1) {
  19. int p2 = sql.indexOf("$", p1 + 1);
  20. if (p2 > -1) {
  21. String n = sql.substring(p1, p2 + 1);
  22. Object v = user.getAttribute(n);
  23. if (v != null) {
  24. sb.append(sql.substring(p, p1)).append(v);
  25. p = p2 + 1;
  26. } else {
  27. sb.append(sql.substring(p, p2));
  28. p = p2;
  29. }
  30. continue;
  31. }
  32. sb.append(sql.substring(p));
  33. break;
  34. }
  35. sb.append(sql.substring(p));
  36. break;
  37. }
  38. return sb.toString();
  39. }
  40. }
  41. }