mybatis-参数是数组的遍历讲解

在这里插入图片描述

mapper:

public interface UserMapper {
    public List<User> findUserByIds2(List<Integer> ids);
}

xml配置:

<!-- 5.参数是数组
        如果参数是数组的话,parameterType可以写全名【java.util.List】,也可以写别名
        遍历或者判断的时候,都用list变量
    -->
    <select id="findUserByIds2" parameterType="list" resultType="user">
        <!--性别和名字 SELECT * FROM user WHERE id in (1,2,3) -->
        SELECT * FROM user
        <where>
            <if test="list != null and list.size > 0">
                <foreach collection="list" item="id" open="id in(" close=")" separator=",">
                    ${id}
                </foreach>
            </if>
        </where>
    </select>

测试类:

public class Demo01 {
    SqlSession session;
    @Before
    public void before() throws IOException {
        System.out.println("before....获取session");
        //读取配置文件
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        //通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        //通过SqlSessionFactory创建SqlSession
        session = sessionFactory.openSession();
    }

    @After
    public void after(){
        session.close();
    }

    @Test
    public void test5() throws IOException {
        UserMapper userMapper = session.getMapper(UserMapper.class);
        List<Integer> ids = new ArrayList<Integer>();
        ids.add(1);
        ids.add(10);
        ids.add(16);
        List<User> users = userMapper.findUserByIds2(ids);
        System.out.println(users);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44682587/article/details/107757380
今日推荐