MyBatis——》mapper&xml传递参数

版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者。
https://blog.csdn.net/weixin_43453386/article/details/84138942

一、多个参数传递

1、顺序传参法——》不建议使用:不直观,顺序调整容易出错

#{}:对应传入参数的顺序

1) DAO层
public User selectUser(String userName, Integer companyId);
2) XML层
<select id="selectUser" resultMap="ResultMap">
    select * 
	from user
    where 1=1
    <if test="#{0} != null and #{0} != ''">
        and user_name = #{0} 
    </if>
	
	and company_id = #{1}
</select>

2、@Param注解传参法——》建议使用:直观

#{}:对应注解@Param括号里面修饰的名称

1) DAO层
public User selectUser(@Param("userName") String userName, Integer @Param("companyId") companyId);
2) XML层
<select id="selectUser" resultMap="ResultMap">
    select * 
	from user
    where 1=1
    <if test="userName!= null and userName!= ''">
    	and user_name = #{userName} 
    </if>
	and company_id = #{companyId} 
</select>

3、Map传参法——》建议使用:不用一直修改传入参数

#{}:对应的是Map里面的key名称

1) DAO层
public User selectUser(Map<String, Object> params);
2) XML层
<select id="selectUser" parameterType="java.util.Map" resultMap="ResultMap">
    select * 
	from user
    where 1=1
    <if test="userName!= null and userName!= ''">
    	and user_name = #{userName} 
    </if>
	and company_id = #{companyId}
</select>

4、Java Bean传参法——》建议使用:直观,但需要实体类,需要扩展字段

#{}:对应的是User类里面的成员属性

1) DAO层
public User selectUser(User user);
2) XML层
<select id="selectUser" parameterType="com.test.User" resultMap="ResultMap">
    select * 
	from user
    where 1=1
    <if test="userName!= null and userName!= ''">
    	and user_name = #{userName} 
    </if>
	and company_id = #{companyId}
</select>

二、单个参数传递

1、单个参数

传入单个参数, 使用_parameter或#{0}

1) DAO层
public User selectUser(String userName);
2) XML层
## 第一种方式:
<select id="selectUser" resultMap="ResultMap">
    select * 
	from user
    where 1=1 
	<if test="_parameter!=null and _parameter!=''">
		and user_name=#{_parameter}
	</if>
</select>


## 第二种方式:
<select id="selectUser" resultMap="ResultMap">
    select * 
	from user
    where 1=1 
	<if test="#{0}!=null and #{0}!=''">
		and user_name=#{0}
	</if>
</select>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值