有没有大神知道
/*
*换成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"));
}
}