クラス SqlParser


  • public class SqlParser
    extends Object
    SQLを解析してNodeのツリーにするクラスです。
    作成者:
    higa
    • コンストラクタの詳細

      • SqlParser

        public SqlParser​(String sql,
                         org.springframework.expression.ExpressionParser expressionParser)
        SqlParserを作成します。
        パラメータ:
        sql - SQL
        expressionParser - IFコメント名の式を処理するためのEL式のパーサです。
    • メソッドの詳細

      • normalizeSql

        protected String normalizeSql​(String sql)
        パース対象のSQLをトリムなど行い正規化します。
        パラメータ:
        sql - パース対象のSQL
        戻り値:
        正規化したSQL
      • parse

        public Node parse()
        戻り値:
        SQLを解析してNodeのツリーを返します。
      • parseToken

        protected void parseToken()
        トークンを解析します。
      • parseSql

        protected void parseSql()
        SQLを解析します。
      • parseComment

        protected void parseComment()
        コメントを解析します。
      • parseIf

        protected void parseIf()
        IF 句を解析します。
      • parseBegin

        protected void parseBegin()
        BEGIN 句を解析します。
      • parseEnd

        protected void parseEnd()
        END 句を解析します。
      • parseElse

        protected void parseElse()
        ELSE 句を解析します。
      • parseCommentBindVariable

        protected void parseCommentBindVariable()
        バインド変数コメントを解析します。
      • parseBindVariable

        protected void parseBindVariable()
        バインド変数を解析します。
      • pop

        protected Node pop()
        一番上のノードをポップ(スタックからも取り出す)します。
        戻り値:
        一番上のノード
      • peek

        protected Node peek()
        一番上のノードを返します。
        戻り値:
        一番上のノード
      • push

        protected void push​(Node node)
        ノードを一番上に追加します。
        パラメータ:
        node - ノード
      • isElseMode

        protected boolean isElseMode()
        ELSE モード(ELSE句の中の)かどうかを返します。
        戻り値:
        ELSE モードのとき true を返します。
      • isTargetComment

        protected static boolean isTargetComment​(String comment)
        対象とするコメントかどうかを返します。 バインド変数のコメントかどうかの判定に使用します。
        パラメータ:
        comment - コメント
        戻り値:
        対象とするコメントのとき true を返します。
      • isIfComment

        protected static boolean isIfComment​(String comment)
        IF コメントかどうか判定します。
        パラメータ:
        comment - コメント
        戻り値:
        IF コメントのとき true を返します。
      • isBeginComment

        protected static boolean isBeginComment​(String comment)
        BEGIN コメントかどうか判定します。
        パラメータ:
        comment - コメント
        戻り値:
        BEGIN コメントのとき true を返します。
      • isEndComment

        protected static boolean isEndComment​(String comment)
        END コメントかどうか判定します。
        パラメータ:
        comment - コメント
        戻り値:
        END コメントのとき true を返します。
      • isHintComment

        protected static boolean isHintComment​(String comment)
        Oracle のヒントコメントかどうか判定します。
        パラメータ:
        comment - コメント
        戻り値:
        Oracle のヒントコメントのとき true を返します。