ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

myBatis( sql片段,foreache)

2022-04-18 15:31:07  阅读:190  来源: 互联网

标签:片段 ids IDs blog sql myBatis foreache select


myBatis(sql片段)

//将片段提取出来,命名后,在引用的地方用<include refid=""></include>
    <sql id="if">
            <if test="title != null">
                and title =#{title}
            </if>
            <if test="author != null">
                and author=#{author}
            </if>
    </sql>

    <!--某列的if模糊查询,全部if都会判断-->
    <select id="QueryBlog" resultType="pojo.Blog" parameterType="map">
        select * from myBatis.blog
<where>
    <include refid="if"></include>
</where>
    </select>

注意

  1. 最好基于单表的操作
  2. 不要存在where标签,where标签会修改片段符号

foreache

blogMapper.xml

    <select id="QueryBogForeach" resultType="pojo.Blog" parameterType="map">
        /* select * from myBatis.blog where id in(1 ,2 ,3)*/
        select * from myBatis.blog
        <where>
        <foreach collection="ids" item="IID" open="id in (" close=")" separator=",">
          /*这里内容是每一个IID,IID是ids集合的每一项元素,需要往ids集合填充元素*/
            #{IID}
        </foreach>
        </where>
    </select>

测试

 @org.junit.Test
    public void QueryBogForeach() {
        SqlSession sqlSession = myBatisUtils.getSqlSession();
        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);

        Map<String, Object> map = new HashMap<>();

        //创建一个集合填充ids的集合
        ArrayList<Integer> IDs = new ArrayList<>();
        map.put("ids", IDs);
        IDs.add(1);

        List<Blog> blogs = mapper.QueryBogForeach(map);
        for (Blog blogg : blogs) {
            System.out.println(blogg);
        }
        sqlSession.close();
    }

标签:片段,ids,IDs,blog,sql,myBatis,foreache,select
来源: https://www.cnblogs.com/123xian/p/16159853.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有