有没有大神知道
/* *换成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);
就是问 query(List<Map<String, Object>> params)
这个方法里的SELECT语句能不能把 AND 改成 OR
那是不是可以把 " AND " 和 " OR " 像"name" 、"rela" 、"value" 一样一起放在Map中,来选择是 AND 还是 OR,通过map.get("...") 获取AND 或者 OR
这样不用另外写一个方法?
我在想能不能把AND OR也当参数放在Map里?
不需要更改1=1
sql.append("SELECT * from imooc_goddess where 1=1"); if(params!=null&¶ms.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")+")"); } }
用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")); } }