侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130555 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

MyBatis占位符 #{ } 和 ${ }

2023-11-21 星期二 / 0 评论 / 0 点赞 / 11 阅读 / 1642 字

相同点:如果传入的是基本类型,那么括号里的变量名称可以随意命名。 如果传入的是pojo对象,那么括号中的变量名称必须是pojo的属性名称。 不同点:#{} 占位符,占位 ${} 拼接符,字符串

相同点:如果传入的是基本类型,那么括号里的变量名称可以随意命名。

             如果传入的是pojo对象,那么括号中的变量名称必须是pojo的属性名称。

不同点:#{}  占位符,占位

             ${}   拼接符,字符串原样拼接

能用#{} 的尽量少用 ${}  (因为${}不能防止sql注入)

如果使用order by 动态参数时需要使用 ${} ,因为使用${} 传的参数不带引号(比如 order by user_id),而通过#{}传的参数会带引号(比如order by “user_id” ) 

如果parameterType是int时,sql语句中必须用 #{}  

 

<select id="findUserByUserName" parameterType="string" resultType="project.book.pojo.User">

select * from User where username like '%${value}%'

</select>

 

<select id="findById"  parameterType="int"  resultType="project.book.pojo.User">     

 select * from User where id=#{id}   

</select>

 

<select id="getUserList" resultType="project.book.pojo.User">
        SELECT * from User
        <if test="id !=null">
            ORDER BY ${id}
        </if>
 </select>

广告 广告

评论区