在mybatis中如何将Map作为参数,
分享于 点击 34925 次 点评:178
在mybatis中如何将Map作为参数,
目录
- 在mybatis中将Map作为参数
- mybatis遇到多个参数时,使用map
- 总结
在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”】
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持3672js教程。
您可能感兴趣的文章:- MyBatis在mapper中传递参数的四种方式
- Mybatis中关于自定义mapper.xml时,参数传递的方式及写法
- MyBatis之传入参数为list、数组、map的写法
- MyBatis在Mapper中传递多个参数的四种方法详解
- Java MyBatis传出参数resultType和resultMap解读
用户点评