Mybatis-万能的Map

26 篇文章 0 订阅
4 篇文章 0 订阅
本文介绍如何在Mybatis中通过Map减少Mapper接口和XML文件的参数传递,提高SQL效率。讲解了如何在mapper接口中定义接受Map类型参数的方法,以及在mapper.xml中设置parameterType。并通过示例展示了如何在测试中使用Map插入用户数据。
摘要由CSDN通过智能技术生成

1 背景

当SQL语句中仅需要某些字段时,不必要将整个对象作为参数传入,因为实际项目中对象的属性可能很多,而SQL语句中不一定要用到这么多字段


2 应用

2.1 mapper接口

mapper接口定义如下:

//用map
int addUser2(Map<String, Object> map);

2.2 mapper.xml

注意parameterType为小写的map即可,values字段对应为map对应的key

 <!--新增用户,用map-->
    <insert id="addUser2" parameterType="map">
        insert into user (id, name, pwd)
        values (#{userId}, #{userName}, #{password})
    </insert>

2.3 测试

// 新增用户用map
    @Test
    public void addUser2Test() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        Map map = new HashMap<String, Object>();
        map.put("userId", 4);
        map.put("userName", "hello");
        map.put("password", "222333");
        int res = mapper.addUser2(map);
        System.out.println("影响行数:" + res);

        //提交事务
        sqlSession.commit();

        sqlSession.close();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值