Module bus.pager

Class SqlParserHandler

java.lang.Object
org.miaixz.bus.mapper.handler.AbstractSqlHandler
org.miaixz.bus.pager.handler.SqlParserHandler
Direct Known Subclasses:
ConditionHandler, OperationHandler, PaginationHandler

public class SqlParserHandler extends org.miaixz.bus.mapper.handler.AbstractSqlHandler
抽象SQL解析类,提供SQL语句解析和处理功能。
Since:
Java 17+
Author:
Kimi Liu
  • Field Summary

    Fields inherited from class org.miaixz.bus.mapper.handler.AbstractSqlHandler

    DEFAULT_REFLECTOR_FACTORY, DELEGATE_BOUNDSQL, DELEGATE_BOUNDSQL_SQL, DELEGATE_MAPPEDSTATEMENT, MAPPEDSTATEMENT
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static net.sf.jsqlparser.statement.Statement
    解析单个SQL语句。
    parserMulti(String sql, Object object)
    解析并处理多个SQL语句。
    parserSingle(String sql, Object object)
    解析并处理单个SQL语句。
    static net.sf.jsqlparser.statement.Statements
    解析多个SQL语句。
    protected void
    processDelete(net.sf.jsqlparser.statement.delete.Delete delete, int index, String sql, Object object)
    处理DELETE语句。
    protected void
    processInsert(net.sf.jsqlparser.statement.insert.Insert insert, int index, String sql, Object object)
    处理INSERT语句。
    protected String
    processParser(net.sf.jsqlparser.statement.Statement statement, int index, String sql, Object object)
    执行SQL语句解析和处理。
    protected void
    processSelect(net.sf.jsqlparser.statement.select.Select select, int index, String sql, Object object)
    处理SELECT语句。
    protected void
    processUpdate(net.sf.jsqlparser.statement.update.Update update, int index, String sql, Object object)
    处理UPDATE语句。
    protected static void
    校验SQL防止注入风险

    Methods inherited from class org.miaixz.bus.mapper.handler.AbstractSqlHandler

    getMappedStatement, getMappedStatement, getMetaObject, getSqlParserInfo, mapperBoundSql, mapperStatementHandler, realTarget, setAdditionalParameter

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SqlParserHandler

      public SqlParserHandler()
  • Method Details

    • parse

      public static net.sf.jsqlparser.statement.Statement parse(String sql) throws net.sf.jsqlparser.JSQLParserException
      解析单个SQL语句。
      Parameters:
      sql - SQL语句字符串
      Returns:
      解析后的Statement对象
      Throws:
      net.sf.jsqlparser.JSQLParserException - 如果解析失败
    • parseStatements

      public static net.sf.jsqlparser.statement.Statements parseStatements(String sql) throws net.sf.jsqlparser.JSQLParserException
      解析多个SQL语句。
      Parameters:
      sql - SQL语句字符串
      Returns:
      解析后的Statements对象
      Throws:
      net.sf.jsqlparser.JSQLParserException - 如果解析失败
    • parserSingle

      public String parserSingle(String sql, Object object)
      解析并处理单个SQL语句。
      Parameters:
      sql - SQL语句字符串
      object - 附加处理对象
      Returns:
      处理后的SQL语句
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - 如果解析失败
    • parserMulti

      public String parserMulti(String sql, Object object)
      解析并处理多个SQL语句。
      Parameters:
      sql - SQL语句字符串
      object - 附加处理对象
      Returns:
      处理后的SQL语句(多条语句以分号分隔)
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - 如果解析失败
    • processParser

      protected String processParser(net.sf.jsqlparser.statement.Statement statement, int index, String sql, Object object)
      执行SQL语句解析和处理。
      Parameters:
      statement - JSQLParser解析的语句对象
      index - 语句索引(多语句时使用)
      sql - 原始SQL语句
      object - 附加处理对象
      Returns:
      处理后的SQL语句
    • processInsert

      protected void processInsert(net.sf.jsqlparser.statement.insert.Insert insert, int index, String sql, Object object)
      处理INSERT语句。
      Parameters:
      insert - INSERT语句对象
      index - 语句索引
      sql - 原始SQL语句
      object - 附加处理对象
      Throws:
      UnsupportedOperationException - 默认不支持INSERT处理
    • processDelete

      protected void processDelete(net.sf.jsqlparser.statement.delete.Delete delete, int index, String sql, Object object)
      处理DELETE语句。
      Parameters:
      delete - DELETE语句对象
      index - 语句索引
      sql - 原始SQL语句
      object - 附加处理对象
      Throws:
      UnsupportedOperationException - 默认不支持DELETE处理
    • processUpdate

      protected void processUpdate(net.sf.jsqlparser.statement.update.Update update, int index, String sql, Object object)
      处理UPDATE语句。
      Parameters:
      update - UPDATE语句对象
      index - 语句索引
      sql - 原始SQL语句
      object - 附加处理对象
      Throws:
      UnsupportedOperationException - 默认不支持UPDATE处理
    • processSelect

      protected void processSelect(net.sf.jsqlparser.statement.select.Select select, int index, String sql, Object object)
      处理SELECT语句。
      Parameters:
      select - SELECT语句对象
      index - 语句索引
      sql - 原始SQL语句
      object - 附加处理对象
      Throws:
      UnsupportedOperationException - 默认不支持SELECT处理
    • validateSql

      protected static void validateSql(String sql)
      校验SQL防止注入风险
      Parameters:
      sql - SQL语句字符串