SoFunction
Updated on 2025-03-08

How to use Map as parameter in mybatis

Use Map as parameter in mybatis

Declare methods in interface and set parameters to Map collection

package ;
 
import ;
import ;
 
import ;
import ;
 
public interface UserMapper {
   
    int addUser11(Map<String,Object> map);
}

Assign values ​​to Map in implementation class

package ;
 
import ;
import ;
import ;
import ;
 
import ;
import ;
import ;
 
public class UserMapperTest {
    
    @Test
    public void addUser11(){
        SqlSession sqlSession = ();
        UserMapper mapper = ();
        Map&lt;String,Object&gt; map = new HashMap&lt;&gt;();
        ("id",9);
        ("userName","A Feng");
        ("pwd","1231321");
        int i = mapper.addUser11(map);
        if (i ==0 ){
            ("fail");
        }else {
            ("Added successfully");
        }
        ();
    }
}
 

3. Write corresponding SQL statements in the mapped SQL statement file

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-////DTD Mapper 3.0//EN"
        "/dtd/">
<mapper namespace="">
    <insert  parameterType="map">
        insert into user (id,userName,pad ) values (#{id},#{userName},#{pwd});
    </insert>
</mapper>

The parameterType should be map because it is a good alias that is automatically generated by mybatis.

When mybatis encounters multiple parameters, use map

There are too many tables, fields or parameters in our entity classes, or databases, and we should consider using Map!

    //Universal Map    int addUser2(Map&lt;String,Object&gt; map);

  &lt;!--Properties in an object,Can be taken out directly    transfermapofkey--&gt;
    &lt;insert  parameterType="map"&gt;
        insert into  (id, pwd) values (#{userid},#{passWord});
    &lt;/insert&gt;

Test

    @Test
    public void addUser2(){
        SqlSession sqlSession = ();

        UserMapper mapper = ();


        Map<String, Object> map = new HashMap<String, Object>();

        ("userid",5);
        ("passWord","2222333");

        mapper.addUser2(map);

        ();
    }

Notice:

  • Pass parameters to Map and just take out the key in SQL! 【parameterType="map"】
  • Pass parameters to the object and directly retrieve the object's properties in SQL! 【parameterType="Object"】

Summarize

The above is personal experience. I hope you can give you a reference and I hope you can support me more.