MyBatis詳細解5.ダイナミックSQL
3669 ワード
クリックして私のブログに入ります.
MyBatis詳細解1.概説MyBatis詳細解2.MyBatis使用入門MyBatis詳細解3.MyBatis構成詳細解4.マッパーMapper MyBatis詳細解5.ダイナミックSQL MyBatis詳細解6.MyBatis技術内幕MyBatis詳細解7.プラグインMyBatis詳細解8.統合Spring
1概要
MyBatisはSQL文のダイナミックな組み立て能力を提供しています.大量の判断はMyBatisのマッピングXMLファイルの中に配置できます.たくさんのコードが必要で、実現できる機能が必要です.コードの作成作業量が大幅に減少しました.
動的SQLの要素
元素
作用
コメント
if
判断文
単条件分岐判定
chose、when、otherswise
Javaに相当するcase when文
多条件分岐判定
trim、where、set
補助要素
いくつかのSQLの綴り問題を処理するのに使います.
foreach
ループステートメント
n文などに条件を列挙してよく使う
2 if元素
if元素はJava中のif文に相当し、test属性としばしば共同で使用される.今はnameによって学生を探しに行きますが、nameはオプションです.以下の通りです.
いくつかの条件の選択が必要です.Javaではswitch、case、default文が使えます.マッパーの動態文ではchose、when、otherwise元素が使えます.
上記のselect文には、
時々、私達はいくつかの特殊なSQL文法を取り除きます.例えばよくあるand、or、この時にtrim元素を使うことができます.trim要素は、いくつかの特殊な文字列を削除する必要があります.prefixは文のプレフィックスを表します.prefixOverridesは、そのような文字列を削除する必要があります.
udate文では、いくつかのフィールドの値だけを更新したい場合、この時にset要素を使ってif要素を配合して完成します.注意:set要素は
foreach要素は循環文であり、その役割は巡回集合であり、配列、List、Setインターフェースをサポートすることができる. collection構成は、渡されたパラメータ名 である. itemは、サイクル中の現在の要素を構成する. indexは、現在の要素がセットの位置で下付きに構成されている. openとcloseはどのような記号でこれらのセット要素を包装しますか? separatorは各要素の間隔記号である. 8 bit元素
ビット要素の役割はONL表現によってコンテキスト変数をカスタマイズするので、より便利です.私達があいまいな検索をする時、もしMySQLデータベースなら、私達がよく使うのは1つのconcatが「%」でパラメーターと接続するのです.しかし、Oracleデータベースでは、接続記号「124 124」を使用しており、SQLは2つの形で実現する必要がある.しかし、Bind要素があると、データベースの言語を全く使わなくても、MyBatisの言語を使えば必要なパラメータに接続できます.
MyBatis詳細解1.概説MyBatis詳細解2.MyBatis使用入門MyBatis詳細解3.MyBatis構成詳細解4.マッパーMapper MyBatis詳細解5.ダイナミックSQL MyBatis詳細解6.MyBatis技術内幕MyBatis詳細解7.プラグインMyBatis詳細解8.統合Spring
1概要
MyBatisはSQL文のダイナミックな組み立て能力を提供しています.大量の判断はMyBatisのマッピングXMLファイルの中に配置できます.たくさんのコードが必要で、実現できる機能が必要です.コードの作成作業量が大幅に減少しました.
動的SQLの要素
元素
作用
コメント
if
判断文
単条件分岐判定
chose、when、otherswise
Javaに相当するcase when文
多条件分岐判定
trim、where、set
補助要素
いくつかのSQLの綴り問題を処理するのに使います.
foreach
ループステートメント
n文などに条件を列挙してよく使う
2 if元素
if元素はJava中のif文に相当し、test属性としばしば共同で使用される.今はnameによって学生を探しに行きますが、nameはオプションです.以下の通りです.
3 chose、when、otherswise元素いくつかの条件の選択が必要です.Javaではswitch、case、default文が使えます.マッパーの動態文ではchose、when、otherwise元素が使えます.
4 where元素上記のselect文には、
1=1
の絶対trueの文を追加しました.目的は、文の間違いを防ぐために、SELECT * FROM student WHERE
のようにwhereになってから内容のないエラー文になります.これはちょっとおかしいです.
要素が使用できます.
5 trim要素時々、私達はいくつかの特殊なSQL文法を取り除きます.例えばよくあるand、or、この時にtrim元素を使うことができます.trim要素は、いくつかの特殊な文字列を削除する必要があります.prefixは文のプレフィックスを表します.prefixOverridesは、そのような文字列を削除する必要があります.
6 set元素udate文では、いくつかのフィールドの値だけを更新したい場合、この時にset要素を使ってif要素を配合して完成します.注意:set要素は
,
に遭遇すると自動的に,
を削除します.
UPDATE student
name = #{name},
sex = #{sex}
WHERE id = #{id}
7 foreach要素foreach要素は循環文であり、その役割は巡回集合であり、配列、List、Setインターフェースをサポートすることができる.
ビット要素の役割はONL表現によってコンテキスト変数をカスタマイズするので、より便利です.私達があいまいな検索をする時、もしMySQLデータベースなら、私達がよく使うのは1つのconcatが「%」でパラメーターと接続するのです.しかし、Oracleデータベースでは、接続記号「124 124」を使用しており、SQLは2つの形で実現する必要がある.しかし、Bind要素があると、データベースの言語を全く使わなくても、MyBatisの言語を使えば必要なパラメータに接続できます.