Mybatis(6)动态SQL if where foreach标签的使用

試著忘記壹切 提交于 2020-02-15 08:35:42

if标签判断(多条件查询)

  • 1.写一个方法
    在这里插入图片描述
  • 2.配置映射文件
    在这里插入图片描述
  • 3.测试
    在这里插入图片描述
    2.where标签
    where标签可以省略where1=1这个条件,通过mybatis自动生成
    在这里插入图片描述
    3.foreach标签(子查询)
    根据id查询user信息,id使用List集合元素
  • 1.在QueryVo实体类中封装一个ids集合和相应的get,set方法
    在这里插入图片描述
  • 2.写一个方法
    在这里插入图片描述
  • 3.根据foreach标签拼接sql语句
    foreach标签
    collection属性指定要遍历的集合ids
    open属性指定sql的开始
    close属性指定sql语句结束
    separator属性指定集合中的元素放到sql语句中的隔开符号
    item是给ids这个元素的别名
    #{ }中要获取的内容是item的内容(写item属性里的别名)
    相当于:
    for (QueryVo idlist:ids) {
    System.out.println(idlist);
    }

    sql语句:select * from user where 1=1 and id in(集合元素1,2,3 )
    在这里插入图片描述
  • 4.测试
    在这里插入图片描述
    4.抽取重复sql语句
    *sql标签 *
    注:sql标签里的sql语句不要在分号,拼接语句时会出错
    在这里插入图片描述
    使用include标签的refid属性直接引用
    在这里插入图片描述
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!