zoukankan      html  css  js  c++  java
  • @Param注解和@Mapper注解

    @Param

    1.如果dao方法中只有一个参数,入参可以为#{0}或者#{任意单词},也可以使用@Param指定参数名称,sql中就只能#{指定名称}获取参数

    public List<Region> selectRegion(String region_code);
    <select id="selectRegion" resultType="java.util.Map">
            select
                id,
                create_time,
                update_time,
                isvalid,
                region_code,
                parent_region_code,
                name,
                region_path,
                region_level,
                sort,
                geometry
            from region_info
            where 1=1
            <if test = "region_code != null">
             AND region_code = #{0}
            </if>
        </select>
    <select id="selectRegion" resultType="java.util.Map">
            select
                id,
                create_time,
                update_time,
                isvalid,
                region_code,
                parent_region_code,
                name,
                region_path,
                region_level,
                sort,
                geometry
            from region_info
            where region_code = #{aaa}
        </select>

    2.如果dao方法中有多个参数,可以使用@Param指定参数名称,sql中必须使用指定的参数名称作为入参#{指定名称}

    public List<Region> selectAllRegion(@Param("region_code")String region_code,@Param("name")String name);
    <select id="selectAllRegion" resultType="java.util.Map">
          select
            id,
            create_time,
            update_time,
            isvalid,
            region_code,
            parent_region_code,
            name,
            region_path,
            region_level,
            sort,
            geometry
          from
            region_info
          where 1=1
            <if test="region_code != null">
                AND region_code = #{region_code}
            </if>
            <if test="name != null">
                AND name like '%' || #{name} || '%'
            </if>
        </select>

    假如我们不使用@Param指定名称,sql中可以使用#{arg0},#{arg1}...这种形式匹配对应入参

    public List<Region> selectAllRegion(String region_code,String name);
    <select id="selectAllRegion" resultType="java.util.Map">
          select
            id,
            create_time,
            update_time,
            isvalid,
            region_code,
            parent_region_code,
            name,
            region_path,
            region_level,
            sort,
            geometry
          from
            region_info
          where 1=1
                AND region_code = #{arg0}
                AND name like '%' || #{arg1} || '% '
        </select>

    总结:尽量使用@Param方式指定传参

    @Mapper

    将dao类划归spring管理

  • 相关阅读:
    线性代数12.图和网络
    【转载】STM32之中断与事件---中断与事件的区别
    头文件重复包含(转)
    C语言位操作
    NOP使用注意事项
    头文件intrins.h的用法
    RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器概念
    const在C语言中的用法
    volatile的作用
    absacc.h keil软件里怎么找不到 ,如何找?
  • 原文地址:https://www.cnblogs.com/jxxblogs/p/12710823.html
Copyright © 2011-2022 走看看