シーンワン:
例えば、時の動作時間まで、私たちは満たすことができないようなクエリのルックスを実現したいです。
シーン2:
より多くの情報が要件を満たすために入力された場合、他の回は、より多くの我々は、より少ないユーザーが見つけるします
私たちが見つけるかもしれない10人の名前を入力すると、セックスはその後、番号を入力する可能性がある場合、半分に削減されます
例えばようなラベルの数の導入として上記課題を解決するMyBatisのため:
< もし</> 場合> < > </ > < foreachの> </ foreachの> < > </ > < セット> </ セット>
シーン一つの解決策:
UserDao方法:
QueryVoのエンティティクラス:
パッケージcom.zyb.pojo。 輸入はjava.util.List; パブリック クラスQueryVo { プライベートユーザーユーザー。 プライベートリスト<整数> IDS; パブリックQueryVo(){ } パブリックユーザーのgetUser(){ 戻りユーザ。 } 公共 ボイドSETUSER(ユーザユーザ){ この .user = ユーザー。 } 公衆リスト<整数> getIds(){ 戻りIDS。 } 公共 ボイド setIds(一覧<整数> IDS){ この .ids = IDS。 } }
対応するSQL文をMapper.xml:
< 選択ID = "selByids" resultTypeと= "ユーザ" このresultMap = "ユーザマップ" のParameterType = "com.zyb.pojo.QueryVo" > < 含むREFID = "defaultSql" </> 含ま> < > < もしテスト= "IDを!= NULLとids.size()> 0" > < foreachのコレクション= "IDが" オープン( "IN ="とID 近い= ")" 項目= "UID" セパレータ= ""> #{UID} </ foreachの> </ 場合> </ 場所> </ 選択>
<含むREFID =「defaultSql」>上記</含ま>共通コード片として抽出します
シーンつのソリューション:
UserDao方法:
SQL文を対応するMapper.xml:
< 選択ID = "selByCondition" resultTypeと= "ユーザ" このresultMap = "ユーザマップ" のParameterType = "ユーザ" > my_userから選択* < 場所> < もしテスト= "は、uname!= nullを" > ユーザ名=#{}のuname </ 場合> < もしテスト= "userSex!= nullを" > 性別=#{} userSex </ 場合> </ 場所> </ 選択>
ラベルを設定して使用する場合: