MyBatis 传入参数parameterType详解

在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型

基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值
复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或#{map的KeyName}即可获取传入的值



基本数据类型参数示例:

根据班级ID查询教师列表

xml文件

<select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id}
</select>


java代码

List<Teacher> tList = teacherMapper.selectTeacher(2);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString());
}

JAVA实体类型参数示例:

<select id="selectTeacher" parameterType="com.myapp.domain.Teacher" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id}
</select>


java代码

Teacher queryTeacher=new Teacher();
queryTeacher.setId(2);
List<Teacher> tList = teacherMapper.selectTeacher(queryTeacher);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }

Map参数示例:
<select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>

java代码

Map<String,String> map=new HasMap<String,String>();
map.put("id","2");
map.put("sex","男");
List<Teacher> tList = teacherMapper.selectTeacher(map);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }

另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

示例:

接口方法

public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);


XML文件

<select id="selectTeacher" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>


测试代码

List<Teacher> tList = teacherMapper.selectTeacher("2","男");
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString());
Mybatis的Mapper配置文件中,当parameterType为map时,可以使用Map来传递参数。这意味着我们可以将参数存储在一个Map中,其中键为参数的名称,值为参数的值。在调用该Mapper方法时,我们可以直接将该Map作为参数传递给该方法。在Mapper配置文件中,我们可以通过#{key}的方式来引用Map中的值。例如,在select语句中,我们可以使用#{name}来引用Map中名为"name"的键对应的值。 使用Map作为parameterType的好处是可以灵活地传递多个参数。我们可以根据需要创建一个包含多个键值对的Map,每个键值对对应一个参数。这样,在使用Mapper方法时,我们只需要通过键来引用对应的参数值,不需要按照参数的顺序来传递参数。 总结起来,当parameterType为map时,我们可以使用Map来传递多个参数,通过键值对的方式来引用参数的值。这样可以提供更加灵活的参数传递方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MyBatis参数处理.docx](https://download.youkuaiyun.com/download/weixin_44609920/85697786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Mybatis 连表查询,返回结果封装为Map](https://blog.youkuaiyun.com/vili_sky/article/details/73289962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值