パラメータを渡すMyBatisの-SQL文

ステートメントのParameterTypeプロパティでMyBatisのマッピングは、入力パラメータの種類を開発します。しかし、のParameterTypeプロパティは、パラメータを1つしか書き込むことができますので、私たちは声明の中で渡された複数のパラメータをマップしたい場合は、次に我々は、マップされたステートメントを渡すためのHashMap、HashMapのにすべての入力パラメータを置くことができます。

実際には、地図、地図に保存され、その後、パラメータのSQLステートメントとして渡されたパラメータの数は、mybaitsは、各パラメータを取得するために、地図のコレクションを解析した後に受け取りました。

例えば:

< 選択ID = "searchCourses" のParameterType = "マップ" このresultMap = "CourseResult" >
コースSELECT * FROM 
TUTOR_ID =#{} tutorId 
AND NAME LIKE#{} courseName 
</ 選択>

マッピングインターフェイス:

パブリック インターフェイスDynamicSqlMapper {
一覧 <コース> searchCourses(地図<文字列、オブジェクト> マップ);
}

試験方法:

@Test
 公共 ボイドtest_searchCourses1(){

SQLSESSION SQLSESSION = nullをしてみてください{
SQLSESSION = MyBatisSqlSessionFactory.openSession()。

DynamicSqlMapperマッパー = sqlSession.getMapper(DynamicSqlMapper。クラス)。

地図 <文字列、オブジェクト>マップ= 新しい HashMapの<文字列、オブジェクト> ();
map.put( "tutorId"、1 );
map.put( "courseName"、 "%ののJava%" ); 
一覧 <コース>コース= mapper.searchCourses(マップ);

courses.forEach(のSystem.out ::のprintln)。

} キャッチ(例外e){
e.printStackTrace();
}
}

MyBatisの別の方法は、また、マップ文に渡される入力パラメータを複数設けられています。

:たとえば、私たちは与えられた名前と電子メール情報を通じて、学生の情報を検索したい場合は、クエリインターフェイスは次のように定義される
ようにマッパー方法については、MyBatisのデフォルトパラメータからのparam1、PARAM2 ...という名前のメソッドに左から右へ、そして。

パブリック インターフェイスStudentMapper {
            一覧 <学生> findAllStudentsByNameEmail(文字列名、文字列電子メール)。
} 

MyBatisのマッピング文に渡される入力パラメータの複数をサポートし、フォーム#{PARAM}の構文でそれらを参照してください。

< 選択し、ID = "findAllStudentsByNameEmail" このresultMap = "StudentResult" > 
学生からstud_id、名前、メールアドレス、電話番号を選択します 
どこ 
名前=#{} PARAM1 
そして 
メール=#{} PARAM2 
</ 選択> 

ここで、#{PARAM1}は最初のパラメータ名を指し、それ#{PARAM2}パラメーターは、第二の電子メールを参照します。

おすすめ

転載: www.cnblogs.com/Magic-Li/p/11685550.html