一.标签概述
二.if标签
三.foreach标签
3.1 案例
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
-
1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
-
2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
-
3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可
第一种qingk:
第二种情况:
第三种情况:
3.2 操作
1.mapper.xml
<!-- 查询byid-->
<select id="findByIds" parameterType="java.util.List" resultType="com.mybaits.demo.bean.User">
select id,user_name userName,password from tb_user
where
<foreach collection="list" open="id in(" close=")" item="id" separator=",">
#{id}
</foreach>
</select>
2. daomapper
package com.mybaits.demo.dao;
import com.mybaits.demo.bean.User;
import java.io.IOException;
import java.util.List;
public interface UserMapper {
List<User> findAll() throws IOException;
List<User> findByIds(List<Integer> dataList) throws IOException;
}
3.service层
package com.mybaits.demo.service;
import com.mybaits.demo.bean.User;
import java.io.IOException;
import java.util.List;
public interface UserService2 {
List<User> findAll() throws IOException;
List<User> findByIds(List<Integer> dataList) throws IOException;
}
实现层
@Override
public List<User> findByIds(List<Integer> dataList) throws IOException {
//加载核心配置文件
InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");
//获得sqlsession 工厂对象
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);
//获得sqlsession对象
SqlSession sqlSession=sqlSessionFactory.openSession();
//产生代理对象
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> userList= userMapper.findByIds(dataList);
//打印资源
System.out.println("userlist:"+userList);
//关闭释放资源
sqlSession.close();
return userList;
}
调用层:
package com.mybaits.demo;
import com.mybaits.demo.bean.User;
import com.mybaits.demo.service.UserService;
import com.mybaits.demo.service.UserService2;
import com.mybaits.demo.service.impl.UserServiceImpl;
import com.mybaits.demo.service.impl.UserServiceImpl2;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;
import org.omg.PortableInterceptor.INACTIVE;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName: App2
* @Description: TODO
* @Author: liujianfu
* @Date: 2021/01/30 21:54:06
* @Version: V1.0
**/
public class App2 {
private static Logger log = Logger.getLogger(App2.class);
public static void main(String[] args) throws IOException {
//方式一:传统方法
//UserService userService=new UserServiceImpl();
//userService.findAll();
//方法二: 代理方式
UserService2 userService=new UserServiceImpl2();
userService.findAll();
List<Integer> dataList=new ArrayList<Integer>();
dataList.add(1);
dataList.add(2);
userService.findByIds(dataList);
log.info("执行完了!!!");
}
}