mybatis多入参方法

一、通过下标入参,需要注意的是第一个参数下标为0

dao方法

public List<T_user> queryT_userByPage(String page,String pageSize);

xml中:

    <select id="findAgeAndSex" resultType="Animal">
        select * from animal WHERE age=#{0} and sex=#{1};
    </select>

二、通过dao方法中@param注解入参

dao中:

List<Animal> findAgeAndSex(@Param("age") int age,@Param("sex") String sex);

xml中:
这里参数名,要和注解中的参数名一样

    <select id="findAgeAndSex" resultType="Animal">
        select * from animal WHERE age=#{age} and sex=#{sex};
    </select>

三、通过list集合入参

Dao中:

    int addBatch(List<Animal> list);

xml中:

    <insert id="addBatch">
        insert into animal(aname,age,sex,feetCount)values
      <foreach collection="list" item="list" separator=",">
          (#{list.aname},#{list.age},#{list.sex},#{list.feetCount})
      </foreach>
    </insert>

测试类:

 @Test
    public void addBatch() {
        //3 使用工厂生产SqlSession对象
        SqlSession session=factory.openSession();
        AnimalDynamicMapper animalMapper=session.getMapper(AnimalDynamicMapper.class);
        Animal animal=new Animal(-1,"root",12,"woman",6);
        Animal animal2=new Animal(-1,"king",75,"woman",9);
        List<Animal> list=new ArrayList<>();
        list.add(animal);
        list.add(animal2);
        animalMapper.addBatch(list);
        session.commit();
    }

四、通过map集合入参

首先将参数封装进map集合中,再传入dao方法中

Dao中:

List<Animal> findByParam(Map param);

xml中:

    <select id="findByParam" resultType="Animal">
        select * from animal WHERE age=#{age} and sex=#{sex};
    </select>

测试类:

    @Test
    public void findByParam() {
        //3 使用工厂生产SqlSession对象
        SqlSession session=factory.openSession();
        AnimalMapper animalMapper=session.getMapper(AnimalMapper.class);
        Map<String,String> map=new HashMap();
        map.put("age","16");
        map.put("sex","man");
        List<Animal> list=animalMapper.findByParam(map);
        System.out.println(list);
    }

五、最好用的方式

Dao

List<Animal> findAgeAndFeetcount(int age,int count);

xml:

 <select id="findAgeAndFeetcount" resultType="Animal">
        select * from animal WHERE age=#{param1} and sex=#{param2};
    </select>

或者

    <select id="findAgeAndFeetcount" resultType="Animal">
        select * from animal WHERE age=#{arg0} and feetcount=#{arg1};
    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java后端指南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值