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%]
-
Method Summary
Modifier and TypeMethodDescriptionconvertToJdbcSql
(String sql, Object obj) Nablarchの拡張構文が埋め込まれたSQL文をJDBC標準のSQL文(バインド変数を「?」に置き換えたSQL)に変換する。名前付きバインド変数のListを取得する。getSql()
SQL文を取得する。void
名前付きバインド変数をもつSQL文を解析する。void
setLikeEscapeChar
(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
- エスケープ文字
-