Package nablarch.core.db.statement
Interface SqlParameterParser
- All Known Implementing Classes:
BasicSqlParameterParser
名前付きバインド変数を持つSQL文を解析するインタフェース。
名前付きバインド変数を持つSQL文を解析し、JDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)と名前付きバインド変数のListを生成する。
例:
名前付きバインド変数を持つ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 TypeMethodDescriptionconvertToJdbcSql(String sql, Object obj) Nablarchの拡張構文が埋め込まれたSQL文をJDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)に変換する。名前付きバインド変数のListを取得する。getSql()SQL文を取得する。void名前付きバインド変数をもつSQL文を解析する。voidsetLikeEscapeChar(char likeEscapeChar) like条件のエスケープ対象文字をエスケープする文字を設定する。
本メソッドで設定されたSQL文は、解析後のSQL文のescape句に埋め込まれる。
-
Method Details
-
parse
名前付きバインド変数をもつSQL文を解析する。- Parameters:
sql- SQL文
-
convertToJdbcSql
Nablarchの拡張構文が埋め込まれたSQL文をJDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)に変換する。- Parameters:
sql- SQL文obj- 検索条件をもつオブジェクト- Returns:
- 変換後のSQL文
-
getSql
String getSql()SQL文を取得する。- Returns:
- SQL文 (名前付きバインド変数を「?」に置き換えたSQL文)
-
getNameList
名前付きバインド変数のListを取得する。- Returns:
- 名前付きバインド変数のリスト
-
setLikeEscapeChar
void setLikeEscapeChar(char likeEscapeChar) like条件のエスケープ対象文字をエスケープする文字を設定する。
本メソッドで設定されたSQL文は、解析後のSQL文のescape句に埋め込まれる。- Parameters:
likeEscapeChar- エスケープ文字
-