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<String,Object> map = new HashMap<>(); ("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<String,Object> map);
<!--Properties in an object,Can be taken out directly transfermapofkey--> <insert parameterType="map"> insert into (id, pwd) values (#{userid},#{passWord}); </insert>
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.