[Mybatis-multi-parameter processing] mybatisは複数のパラメーターを渡します(@paramアノテーションを使用せず、@ paramアノテーションを使用)

方法1:順次パラメータ送信

1. @paramアノテーションなしで複数のパラメータを渡す
注:jdk1.7で得られるものは:[1、0、param1、param2]
1.8で得られるものは:[arg1、arg0、param1、param2]

#{}内の数字は、受信パラメーターの順序を表します。
この方法はお勧めできません。SQLレイヤー式は直感的ではなく、シーケンスを調整すると、間違いを犯しやすくなります。
栗を与える:
Daoレイヤー

List<User> demo(int userid, String name);
  •  

対応するXML書き込み
jdk1.7

<select id="demo" resultMap="User">
		select *
			from user where user_id=#{0} and name= #{1}
	</select>

jdk1.8以降
最初の書き方

<select id="demo" resultMap="User">
		select *
			from user where user_id=#{arg0} and name= #{arg1}
	</select>

第二の書き方

<select id="demo" resultMap="User">
		select *
			from user where user_id=#{param0} and name= #{param1}
	</select>

方法2:@Param注解传パラメータメソッド

public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);

<select id="selectUser" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

#{}内の名前は、アノテーション@Paramブラケットで変更された名前に対応しています。

この方法は、パラメータが少ない場合は比較的直感的であり、推奨されています。

方法3:マップパスメソッド

public User selectUser(Map<String, Object> params);

<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

#{}の名前は、マップのキー名に対応しています。

このメソッドは、複数のパラメーターを渡すのに適しており、パラメーターを柔軟に渡すことができます。

方法4:Java Beanのパラメーター渡しメソッド

public User selectUser(Map<String, Object> params);

<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

#{}内の名前は、Userクラスのメンバー属性に対応しています。

この方法は非常に直感的ですが、エンティティクラスを構築する必要があり、展開するのは簡単ではなく、状況に応じて属性を追加する必要があります。

元の28件の記事が公開されました 3のような 訪問40,000+

おすすめ

転載: blog.csdn.net/qq_34291570/article/details/105520132