问答详情
源自:2-6 JDBC实战---搭建模型层 Ⅳ

老师提出的两个问题怎么才能做到呢?

有没有大神知道

提问者:王之我姓 2016-12-20 17:44

个回答

  • wanttoplay
    2016-12-22 00:15:43
    已采纳

    /*
    *换成or的话把1=1换成 1=0 任意一种结果为false的等式
    *查birthday的map这么填就行,日期注意加分号
    */
    List<Map<String,Object>> params = new ArrayList<Map<String,Object>>();
    	Map<String,Object> para = new HashMap<String,Object>();
    	para.put("name", "birthday");
    	para.put("rela", ">");
    	para.put("value","'1991-3-24'");
    	params.add(para);
        List<Users> us = d.query(params);


  • zjxjwxk
    2018-03-13 17:26:15

    就是问 query(List<Map<String, Object>> params)

    这个方法里的SELECT语句能不能把 AND 改成 OR 

    那是不是可以把  " AND " 和 " OR " 像"name" 、"rela" 、"value" 一样一起放在Map中,来选择是 AND 还是 OR,通过map.get("...") 获取AND 或者 OR

    这样不用另外写一个方法?

  • zjxjwxk
    2018-03-13 16:34:38

    我在想能不能把AND OR也当参数放在Map里?

  • 落叶萧萧online
    2017-09-12 14:44:19

    不需要更改1=1

    sql.append("SELECT * from imooc_goddess where 1=1");
    if(params!=null&&params.size()>0){
        sql.append(" and (");
        for(int i=0;i<params.size();i++){
            Map<String,Object> map=params.get(i);
            if(i<(params.size()-1))sql.append(" "+map.get("name")+" "+map.get("rela")+" "+
                    map.get("value")+" or ");
            if(i==(params.size()-1))sql.append(" "+map.get("name")+" "+map.get("rela")+" "+
                    map.get("value")+")");
        }
    }


  • 学徒王小明
    2017-03-11 10:47:20

    用or做为条件查询,将sql 的条件改为 1=2 即可

    sb.append("select * from imooc_goddess  where 1=2 ");
    
    if(params != null && params.size() > 0)
    {
    for(int i = 0;i < params.size();i++){
    Map<String,Object> map  = params.get(i);
    sb.append(" or "+map.get("name")+" " + map.get("rela")+" " +map.get("value"));
    }
    }