当前位置: 代码网 > it编程>编程语言>Java > 在mybatis中如何将Map作为参数

在mybatis中如何将Map作为参数

2024年05月28日 Java 我要评论
在mybatis中将map作为参数在接口中声明方法并把参数设为map集合package com.dao; import com.pojo.user;import org.apache.ibatis.a

在mybatis中将map作为参数

在接口中声明方法并把参数设为map集合

package com.dao;
 
import com.pojo.user;
import org.apache.ibatis.annotations.param;
 
import java.util.list;
import java.util.map;
 
public interface usermapper {
   
    int adduser11(map<string,object> map);
}

在实现类中给map赋值

package com.dao;
 
import com.pojo.user;
import com.uitl.basedaoutil;
import org.apache.ibatis.session.sqlsession;
import org.junit.test;
 
import java.util.hashmap;
import java.util.list;
import java.util.map;
 
public class usermappertest {
    
    @test
    public void adduser11(){
        sqlsession sqlsession = basedaoutil.opensqlsession();
        usermapper mapper = sqlsession.getmapper(usermapper.class);
        map<string,object> map = new hashmap<>();
        map.put("id",9);
        map.put("username","阿峰");
        map.put("pwd","1231321");
        int i = mapper.adduser11(map);
        if (i ==0 ){
            system.out.println("失败");
        }else {
            system.out.println("添加成功");
        }
        sqlsession.close();
    }
}
 

三,在映射的 sql 语句文件中编写相应的sql语句

<?xml version="1.0" encoding="utf-8" ?>
<!doctype mapper
        public "-//mybatis.org//dtd mapper 3.0//en"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.usermapper">
    <insert id="adduser11" parametertype="map">
        insert into user (id,username,pad ) values (#{id},#{username},#{pwd});
    </insert>
</mapper>

其中 parametertype 应为map 因为是mybatis自动生成好的别名

mybatis遇到多个参数时,使用map

我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用map!

    //万能的map
    int adduser2(map<string,object> map);

mapper.xml

  <!--对象中的属性,可以直接取出来    传递map的key-->
    <insert id="adduser" parametertype="map">
        insert into mybatis.user (id, pwd) values (#{userid},#{password});
    </insert>

test

    @test
    public void adduser2(){
        sqlsession sqlsession = mybatisutils.getsqlsession();

        usermapper mapper = sqlsession.getmapper(usermapper.class);


        map<string, object> map = new hashmap<string, object>();

        map.put("userid",5);
        map.put("password","2222333");

        mapper.adduser2(map);

        sqlsession.close();
    }

注意:

  • map传递参数,直接在sql中取出key即可! 【parametertype=“map”】
  • 对象传递参数,直接在sql中取对象的属性即可!【parametertype=“object”】

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com