MyBatis-<foreach>-遍历集合

<!--foreach标签-->
<delete id="foreachlist">
    delete from user where id in
    <!--open指SQL拼接时的左括号,close指SQL拼接时的右括号  -->
    <foreach collection="list" separator="," item="o" open="(" close=")">#{o}</foreach>
</delete>
@Test
    public void foreachlist(){
        //2.创建SQLsession,执行SQL
        SqlSession session = ssf.openSession();
        List<Integer> list=new ArrayList<Integer>();
        list.add(1);
        list.add(3);
        //第一个是sql定位,第二个是SQL需要的list类型的参数
        int i=session.delete("usernp.foreachlist", list);
        //3.处理结果
        System.out.println(i+"行受到影响");
        session.commit();
        //4.释放资源
        session.close();
    }

<insert id="foreachlistinsert">
    insert into user (name,addr,age) values
    <foreach collection="list" separator="," item="u">(#{u.name},#{u.addr},#{u.age})</foreach>
</insert>
@Test
    public void foreachlistinsert(){
        SqlSession session = ssf.openSession();
        List<User> list = new ArrayList<User>();
        User u=new User();
        u.setName("张飒");
        u.setAge(2);
        u.setAddr("北京");
        list.add(u);
        u=new User();
        u.setName("李四");
        u.setAge(3);
        u.setAddr("广州");
        list.add(u);
        session.insert("usernp.foreachlistinsert",list);
        session.commit();
        session.close();
    }
DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection 1232306490.
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@4973813a]
DEBUG [main] - ==>  Preparing: insert into user (name,addr,age) values (?,?,?) , (?,?,?) 
DEBUG [main] - ==> Parameters: 张飒(String), 北京(String), 2(Integer), 李四(String), 广州(String), 3(Integer)
DEBUG [main] - <==    Updates: 2
DEBUG [main] - Committing JDBC Connection [com.mysql.jdbc.JDBC4Connection@4973813a]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@4973813a]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@4973813a]
DEBUG [main] - Returned connection 1232306490 to pool.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容