美文网首页
mybatis多类型传参

mybatis多类型传参

作者: _花 | 来源:发表于2022-04-01 11:18 被阅读0次

    第一种

    mapper

      /**
         * 查询满足的list集合
         * @param name
         * @param salary
         * @return list
         */
        List<Emp> findByNameOrSalary(@Param("myname") String name,@Param("mysalary") Integer salary);
    

    mapper.xml

        <!--根据名字或工资查询对象-->
        <select id="findByNameOrSalary" resultType="com.example.domain.Emp">
            select * from emp where name = #{myname} or salary = #{mysalary}
        </select>
    

    结论:多个简单类型的参数传递时,当使用了@Param命名后,例如@Param(“myname”),在mapper文件中,使用#{命名参数},例如 #{myname}

    第二种 利用对象传参

    mapper

        /**
         * 根据对象中保存的属性查询emp对象
         * @param emp
         * @return
         */
        List<Emp> findByEmp(Emp emp);
    
    

    mapper.xml

       <select id="findByEmp" resultType="com.example.domain.Emp" parameterType="com.example.domain.Emp">
            select * from emp where name = #{name} or salary=#{salary} or job_id = #{job_id}
        </select>
    

    结论:一个java对象作为方法的参数,使用对象的属性作为参数值使用。简单的语法:#{属性名},mybatis调用此属性的getXxx()方法获取属性值

    第三种 使用Map

    mapper

      /**
         * 使用map作为参数
         * @param map
         * @return list
         */
        List<Emp> selectByMap(Map<String,Object> map);
    

    mapper.xml

        <select id="selectByMap" parameterType="map" resultType="com.example.domain.Emp">
             select * from emp where name=#{myname} or salary <![CDATA[<]]> #{mysalary}
        </select>
    

    相关文章

      网友评论

          本文标题:mybatis多类型传参

          本文链接:https://www.haomeiwen.com/subject/seqajrtx.html