Interface SqlParameterParser

All Known Implementing Classes:
BasicSqlParameterParser

@Published(tag="architect") public interface SqlParameterParser
名前付きバインド変数を持つSQL文を解析するインタフェース。
名前付きバインド変数を持つSQL文を解析し、JDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)と名前付きバインド変数のListを生成する。
例:
 通常のSQLの場合
 parser.parse("insert into user_mst (user_id, name, create_user_id, :upd_user_id) values (:userId, :name, :updUserId, :updUserId");
 parser.getSql(); ->  insert into user_mst (user_id, name, create_user_id, :upd_user_id) values (?, ?, ?, ?)
 parser.getNameList() -> [userId, name, updUserId, updUserId]
 

like句をもつSQLの場合 parser.setLikeEscapeChar('\\'); parser.parse("select user_name from user_mtr where user_id = :userId% and user_name = :%userName%"); parser.getSql(); -> select user_name from user_mtr where user_id = ? escape '\' and user_name = ? escape '\' parser.getNameList() -> [userId%, %userName%]

Author:
Hisaaki Sioiri
  • Method Summary

    Modifier and Type
    Method
    Description
    Nablarchの拡張構文が埋め込まれたSQL文をJDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)に変換する。
    名前付きバインド変数のListを取得する。
    SQL文を取得する。
    void
    名前付きバインド変数をもつSQL文を解析する。
    void
    setLikeEscapeChar(char likeEscapeChar)
    like条件のエスケープ対象文字をエスケープする文字を設定する。
    本メソッドで設定されたSQL文は、解析後のSQL文のescape句に埋め込まれる。
  • Method Details

    • parse

      void parse(String sql)
      名前付きバインド変数をもつSQL文を解析する。
      Parameters:
      sql - SQL文
    • convertToJdbcSql

      String convertToJdbcSql(String sql, Object obj)
      Nablarchの拡張構文が埋め込まれたSQL文をJDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)に変換する。
      Parameters:
      sql - SQL文
      obj - 検索条件をもつオブジェクト
      Returns:
      変換後のSQL文
    • getSql

      String getSql()
      SQL文を取得する。
      Returns:
      SQL文 (名前付きバインド変数を「?」に置き換えたSQL文)
    • getNameList

      List<String> getNameList()
      名前付きバインド変数のListを取得する。
      Returns:
      名前付きバインド変数のリスト
    • setLikeEscapeChar

      void setLikeEscapeChar(char likeEscapeChar)
      like条件のエスケープ対象文字をエスケープする文字を設定する。
      本メソッドで設定されたSQL文は、解析後のSQL文のescape句に埋め込まれる。
      Parameters:
      likeEscapeChar - エスケープ文字