欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyBatis传入参数为list、数组、map写法 博客分类: Mybatis  

程序员文章站 2024-03-19 14:44:40
...
public interface EmployeesMapper {   
  
    List<Employees> getEmployeesListParams(List<String> employeeIds);  
  
    List<Employees> getEmployeesArrayParams(String[] employeeIds);  
  
    List<Employees> getEmployeesMapParams(Map<String,Object> params);  
}  

public class Employees {  
    private Integer employeeId;  
    private String firstName;  
    private String lastName;  
    private String email;  
    private String phoneNumber;  
    private Date hireDate;  
    private String jobId;  
    private BigDecimal salary;  
    private BigDecimal commissionPct;  
    private Integer managerId;  
    private Short departmentId;  
}    

<!--List:forech中的collection属性类型是List,collection的值必须是:list,item的值可以随意,Dao接口中参数名字随意 -->  
    <select id="getEmployeesListParams" resultType="Employees">  
        select *  
        from EMPLOYEES e  
        where e.EMPLOYEE_ID in  
        <foreach collection="list" item="employeeId" index="index"  
            open="(" close=")" separator=",">  
            #{employeeId}  
        </foreach>  
    </select>  
  
    <!--Array:forech中的collection属性类型是array,collection的值必须是:list,item的值可以随意,Dao接口中参数名字随意 -->  
    <select id="getEmployeesArrayParams" resultType="Employees">  
        select *  
        from EMPLOYEES e  
        where e.EMPLOYEE_ID in  
        <foreach collection="array" item="employeeId" index="index"  
            open="(" close=")" separator=",">  
            #{employeeId}  
        </foreach>  
    </select>  
  
    <!--Map:不单单forech中的collection属性是map.key,其它所有属性都是map.key,比如下面的departmentId -->  
    <select id="getEmployeesMapParams" resultType="Employees">  
        select *  
        from EMPLOYEES e  
        <where>  
            <if test="departmentId!=null and departmentId!=''">  
                e.DEPARTMENT_ID=#{departmentId}  
            </if>  
            <if test="employeeIdsArray!=null and employeeIdsArray.length!=0">  
                AND e.EMPLOYEE_ID in  
                <foreach collection="employeeIdsArray" item="employeeId"  
                    index="index" open="(" close=")" separator=",">  
                    #{employeeId}  
                </foreach>  
            </if>  
        </where>  
    </select>  

http://blog.csdn.net/s592652578/article/details/52871884
深入了解MyBatis参数
http://blog.csdn.net/isea533/article/details/44002219

推荐的MyBatis传参方式List、数组等
http://blog.51cto.com/13523664/2060417