使用ibatis进行查询,我想查询一个字段有多个值得时候的结果,sql语句是这样的

select * from eadept ea where ea.deptid in (✀001008✀,✀001009✀,✀001010✀,✀001007✀)
2025-01-07 11:33:50
推荐回答(2个)
回答(1):

从你的dao层传值过来。因为是多个变量,所以要用map传。
ibatis配置文件中写:
select * from eadept ea where ea.deptid in (#id1#,#id2#,#id3#,#id4#)。
dao层里面用map封装:
map.put("id1","001008");
map.put("id2","001009");
map.put("id3","001010");
map.put("id4","001007");
然后把map传过去就行。试试把!希望对你有帮助!

回答(2):

官网的文档有说明的。



public void dynamicForeachTest() {
SqlSession session = Util.getSqlSessionFactory().openSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
List ids = new ArrayList();
ids.add(1);
ids.add(3);
ids.add(6);
List blogs = blogMapper.dynamicForeachTest(ids);
for (Blog blog : blogs)
System.out.println(blog);
session.close();
}

如果不行,换MyBatis