mybatisforeach循环,传入多个参数

上代码:

controller:

@RequestMapping(value = "/findPage", method = RequestMethod.POST)
    @ResponseBody
    public Object findPage(@RequestParam(required=false) String jobCategory,@RequestParam(required=false) String ids,@RequestParam(required=false) String cities) {
        try {
            List<Integer> listJob = new ArrayList<Integer>();
            List<Integer> listIds = new ArrayList<Integer>();
            List<String> listCities = new ArrayList<String>();
            //按照城市名称和工种查询
            if(StringUtils.isNotBlank(jobCategory) && StringUtils.isNotBlank(cities)){
                String[] temp = jobCategory.split(",");
                String[] cityTemp = cities.split(",");
                for(int i=0;i<temp.length;i++){
                    listJob.add(Integer.valueOf(temp[i]));
                }
                for(int i=0;i<cityTemp.length;i++){
                    listCities.add(cityTemp[i]);
                }
                List<WebsitesJob> list = jobService.findPage(listJob, listIds, listCities);
                return new ExtGridReturn(list.size(), list);
            }
            //按照工种查询
            if(StringUtils.isNotBlank(jobCategory)){
                String[] temp = jobCategory.split(",");
                for(int i=0;i<temp.length;i++){
                    listJob.add(Integer.valueOf(temp[i]));
                }
            }
            //按照职位名称查询
            if(StringUtils.isNotBlank(ids)){
                String[] temp = ids.split(",");
                for(int i=0;i<temp.length;i++){
                    listIds.add(Integer.valueOf(temp[i]));
                }
            }
            //按照城市查询
            if(StringUtils.isNotBlank(cities)){
                String[] temp = cities.split(",");
                for(int i=0;i<temp.length;i++){
                    listCities.add(temp[i]);
                }
            }
            List<WebsitesJob> list = jobService.findPage(listJob, listIds, listCities);
            return new ExtGridReturn(list.size(), list);
        } catch (Exception e) {
            LOGGER.error("分页获取信息出错", e);
            return new ExceptionReturn(e);
        }
    }

mapper

/**
     * 描述:根据工种查询列表
     * @param jobCategorys
     * @return
     */
    List<WebsitesJob> findPage(@Param("jobCategorys") List<Integer> jobCategorys,@Param("ids") List<Integer> ids,@Param("workPlace") List<String> workPlace);

xml

<!-- 前台查询列表 -->
   <select id="findPage" resultType="cn.edu.hbcf.plugin.websites.pojo.WebsitesJob">
           select n.ID id,
              n.NAME name,
              n.WORKPLACE workPlace,
              n.JOBCATEGORY jobCategory,
              n.SALARY salary,
              n.RESPONSIBILITIES responsibilities,
              n.REQUIREMENTS requirements,
              n.ISHOT isHot,
              n.UPDATEDATE updateDate,
              n.UPDATEUSER updateUser,
              u.real_name updateName
         from websites_job n
         left join base_users u on n.updateUser = u.account
         <where>
             <if test="jobCategorys.size()!=0">
                 or    n.jobCategory in
                   <foreach collection="jobCategorys" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
            <if test="ids.size()!=0">
                or n.id in
                   <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
                    #{item}
                </foreach>
             </if>
             <if test="workPlace.size()!=0">
                or n.WORKPLACE in
                   <foreach collection="workPlace" item="item" index="index" open="(" separator="," close=")">
                    #{item}
                </foreach>
             </if>
         </where>
         order by n.ISHOT,n.ID desc
   </select>
时间: 2024-11-08 19:58:38

mybatisforeach循环,传入多个参数的相关文章

MyBatis传入多个参数的问题

一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean"> select t.* from tableName t where t.id= #{id} </select> 其中方法名和ID一致,

mybatis从dao传入多个参数到sqlmap时dao中要使用map或实例对象(如:user)作为参数传入, 否则报错找不到属性getter方法

23:37 2015-07-02 注意1. 使用mybaits的resultMap查询时, 如果想传入多个参数(比如where 1=1动态多条件查询时)sqlmap文件中对应的方法中, selectList中一定要传实例对象(如person作为obj而不能用String等等只能一个参数的类)或map封装多参数传入map作为obj注意2. sqlmap中的方法的parameterType和jdbcType可以不用写

小峰mybatis(2)mybatis传入多个参数等..

一.mybatis传入多个参数: 前面讲传入多个参数都是使用map,hashmap:key value的形式:-- 项目中开发都建议使用map传参: 比如现在通过两个参数,name和age来查询: 通过两个参数来查的,了解下就行了: 数据库中存在t_student记录: 1)测试代码StudentTest.java: @Test public void testSearchStudents() { logger.info("根据name和age查询学生"); List<Stude

mybatis传入多个参数

在开头: 需要查阅本文的基本都是需要传入多个参数的,这里记住一句话:无论你传的参数是什么样的,最后mybtis都会将你传入的转换为map的,那么既然这样,当我们要传入多个参数时,何不直接给与map类型即可,然后mapper.xml通过#{map.key}来获取值即可,这个特别适合动态搜索,或者多个参数的查询,并且可以在mapper的xml语句中通过if判断来实现若为空,则不添加查询条件, <if test="userId != null"> #{userId,jdbcTyp

java 传入多个参数时报&quot;Parameter &#39;XXX&#39; not found. Available parameters are [arg1, arg0, param1,...&quot; 解决方案

@Select("SELECT id FROM ae_post ORDER BY id DESC LIMIT #{page},#{size}") List<Post> getAllForPage(@Param("page") int page, @Param("size")int size); dao层写入,解决方法如上 注:多参数需要添加 @Param("参数名") int 参数名 java 传入多个参数时报&q

传入多个参数依次修改文件(bash脚本)

因工作需要自己写的bash脚本传入多个参数依次修改文件!分享出来供大家参考! 实例脚本:br/>#!/bin/basharg=([email protected])n=0m=0sad=ls /usr/local/conf | grep test | sortsmile=ls /usr/local | grep test | sortfor slt in $smiledosed -i "s/.serverId./\t'serverId' => '3${arg[$n]}',/g"

mybais 的映射文件,需要从poviderDao.java 的一个 方法 public getProvidersFactors(参数 ) 中传入多个参数到providerDao.xml中的两种方法

方法一: 直接以对象的整体的形式去传入到xml文件中,当然这时候用过满足的条件是:你所想传入的所有的参数,应该都是包含在一个对象中的,此时可以以对象的形式去传入到xml中 如下图示例 实体类 private String id; private String companyName; private String managerName; private String phone; private String address; private String type; #ProviderDao

setInterval循环设置并传入不同的参数

1 var taskId; 2 var __sto = setInterval; 3 window.setInterval = function(callback,timeout,param){ 4 var args = Array.prototype.slice.call(arguments,2); 5 var _cb = function(){ 6 callback.apply(null,args); 7 } 8 intervalTime[taskId]= __sto(_cb,timeout

springMVC前台传入字符串日期参数转化

项目中,对象属性日期为Date类型,而前台传入日期为字符串类型,使用到SpringMVC框架,需进行转换. 注意使用springMVC框架,前台传入时间参数,需实现initBinder方法把时间字符串转换为Date对象.实现了该方法,会自动完成封装Date类型属性对象. @InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyy