仅能使用${}三种情况

模糊查询

mapper接口:这里使用username进行模糊查询

 List<User> selectUserByLikeName( @Param("username") String username);

映射文件:这里可以使用三种方式,第一种是使用${},因为#{}无法在单引号中使用,要么使用concat()进行拼接+#{},或者使用双引号的方式括住%,常用第三种

<!--    List<User> selectUserByLikeName( @Param("username") String username);-->
    <select id="selectUserByLikeName" resultType="User">
<!--         select * from user where username like '%${username}%' -->
<!--         select * from user where username like concat('%',#{username},'%') -->
           select * from user where username like "%"#{username}"%"
  </select>

批量删除

只能使用${}用来接收参数

mapper接口:

void deleteMore(@Param("userid") String userid);

映射文件:in的作用相当于or

<!--    void deleteMore(@Param("userid") String userid);-->
    <delete id="deleteMore">
        delete from user where userid in (${userid})
    </delete>

调用:

userMapper.deleteMore("6,7,8,9,10,12");

动态设置表名

将表名作为参数传入并使用,仅能使用${},应为表名不能加单引号,#{}会默认加单引号

mapper接口:

 List<User> selectAllUser3( @Param("tableName") String tableName);

映射文件:

<!--    List<User> selectAllUser( @Param("tableName") String tableName);-->
    <select id="selectAllUser3" resultType="User">
        select * from ${tableName};
    </select>
posted @ 2023-03-03 17:51  赤叶秋枫  阅读(45)  评论(0编辑  收藏  举报