MyBatis--动态sql之bind标签

向右看齐 2021-08-13 15:50 634阅读 0赞

标签

在进行模糊查询时,如果使用“${}”拼接字符串,则无法防止 SQL 注入问题。如果使用字符串拼接函数或连接符号,但不同数据库的拼接函数或连接符号不同。

例如 MySQL 的 concat 函数、Oracle 的连接符号“||”,这样 SQL 映射文件就需要根据不同的数据库提供不同的实现,显然比较麻烦,且不利于代码的移植。幸运的是,MyBatis 提供了 元素来解决这一问题。

示例:
1)添加 SQL 映射语句:

  1. <!--使用bind元素进行模糊查询-->
  2. <select id="selectUserByBind" resultType="com.po.MyUser" parameterType= "com.po.MyUser">
  3. <!-- bind 中的 uname 是 com.po.MyUser 的属性名-->
  4. <bind name="paran_uname" value="'%' + uname + '%'"/>
  5. select * from user where uname like #{paran_uname}
  6. </select>

2)添加数据操作接口方法:

  1. public List<MyUser> selectUserByBind(MyUser user);

3)调用数据操作接口方法:

  1. // 使用bind元素查询用户信息
  2. MyUser bindmu=new MyUser();
  3. bindmu.setUname ("张");
  4. List<MyUser> listByBind=userDao.selectUserByBind(bindmu);
  5. System.out.println ("bind 元素=========================");
  6. for (MyUser myUser:listByBind) {
  7. System.out.println(myUser);
  8. }

发表评论

表情:
评论列表 (有 0 条评论,634人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MyBatis--动态sqlbind标签

    <bing>标签 在进行模糊查询时,如果使用“$\{\}”拼接字符串,则无法防止 SQL 注入问题。如果使用字符串拼接函数或连接符号,但不同数据库的拼接函数或连接符号不同