本文主要是介绍myBatis( sql片段,foreache),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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>
注意
- 最好基于单表的操作
- 不要存在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();
}
这篇关于myBatis( sql片段,foreache)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!