@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管理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM