Mybatis基础——传值的几种方式总结

本文是作者初次尝试写博客,分享关于Mybatis传值的多种方法,包括传一个参数、通过Map传两个参数、传多个参数、传List<String>、Map中包含List以及传一个参数和一个List。详细介绍了各种情况下的Dao层代码、mapper文件配置以及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次写博客,真心的感觉到那些经常分享博文的博主的不易(码字真心不容易啊),技术还属于初级阶段,想把自己用的一些经验分享给大家,有写的不对的地方欢迎指正,如果你觉得不错或者有帮到你,还请点赞!欢迎大家指正。
####一、传一个参数
Dao层代码

String findName(String view);

mapper文件代码

<select id="findName" parameterType="java.lang.String" resultType="java.lang.String">
	select name from dict_t where dbtablename = #{view}
</select>

####二、传两个参数可以放在map里传到后台,也可以直接传给后台,但实际上mybatis框架还是封装成map的形式传到后台,不过建议用示例的方式,比较清楚直接
Dao层代码

void updateLeafFlag(@Param("datakey") String datakey, @Param("leaf") String leaf);

mapper文件代码

<update id="updateLeafFlag" parameterType="java.util.Map">
	update fa_b set leaf=#{leaf} where datakey = #{datakey}
</update>

注意parameterType写 parameterType=“java.util.Map”
####三、传多个参数,直接封装成map传给后台
serviceImpl层代码

Map<String,Object> paramMap = new HashMap<String, Object>();
		paramMap.put("sortNo", sortNo);
		paramMap.put("codeType", codeType);
assctlgMapper.querySetAssctlg(paramMap);

Dao层代码

int querySetAssctlg(Map<String, Object> paramMap);

mapper文件代码

<select id="querySetAssctlg" parameterType="java.util.Map"
		resultType="java.lang.Integer">
select code_len from fa_set where code_type=#{codeType}
 and sort_no=#{sortNo}
</select>

####四、传参数List里面放普通的String
Dao层代码

boolean deleteAssctlg(List<String> datakeyList);

mapper文件代码

<delete id="deleteAssctlg" parameterType="java.util.List">
		delete from FA_B where datakey in
		<foreach collection="list" open="(" close=")" item="datakey"
			separator=",">
			#{datakey}
		</foreach>
</delete>

传参数list的时候,注意#后面的值和item的值保持一致
####五、传复杂参数,map里面放list
serviceImpl层代码

Map<String,Object> insertSubParam = new HashMap<String, Object>();
	insertSubParam.put("ctlgId", datakey);
	insertSubParam.put("agencyid", agencyid);
	insertSubParam.put("addList", addList);
	insertSubParam.put("isextend", "1");
extfldMapper.insertselectedExtfld(insertSubParam);

Dao层代码

void insertselectedExtfld(@Param("insertParam") Map<String, Object> insertParam);

mapper文件代码

<insert id="insertselectedExtfld" parameterType="java.util.Map">
insert into fa_b(datakey,agencyid,asst_ctlg,extfld_id,name,isextend) 
select sys_guid(),#{insertParam.agencyid},#{insertParam.ctlgId},dbcolumnname,name,#{insertParam.isextend} from fa_t where dbcolumnname in 
	<foreach collection="insertParam.addList" open="(" close=")" item="dbcolumnname" separator=",">
		#{dbcolumnname}
	</foreach>
</insert>

注意collection=”map.list”
####六、传一个参数和一个list
Dao层代码

void createExtfldView(@Param("viewCode") String viewCode,@Param("dbcolumnList") List<String> dbcolumnList);

mapper文件代码

<update id="createExtfldView" parameterType="java.util.List">
CREATE OR REPLACE VIEW ${viewCode} AS select 
	<foreach collection="dbcolumnList" item="dbcolumnname" separator=",">
		${dbcolumnname}
	</foreach>
from FA_T
</update>

特别注意:表名的取值方式应该用${}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值