注册XML:
定义接口方法:
public interface BlogMapperI {
public List<Blog>getBlogById(List<Integer> ids);
public List<Blog>getBlogById2(int[] arrey);
public List<Blog>getBlogById3(Map<String,Object> map);
public List<Blog> getBlogById4(Map<String,Object> map);
}
SQL映射XML:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="me.gacl.imp.BlogMapperI">
<select id="getBlogById" resultType="Blog">
SELECT *FROM t_blog WHERE id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</mapper>
注意:mapper 中的 namespace 的值要写接口的包名+类名。
select 中的 id 必须和接口中的方法名一致,参数类型和返回类型也必须一致。
junit测试:
@Test
public void getBlogByIdTest() {
SqlSession session = MyBatisUtil.getSqlSessionFactory().openSession();
BlogMapperI blogMapperI = session.getMapper(BlogMapperI.class);
List<Integer> ids = new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(3);
List<Blog> blogs = blogMapperI.getBlogById(ids);
for (Blog blog : blogs) {
System.out.println(blog);
}
session.close();
}
测试结果: