想增加多个查询条件 该怎么写呢
想增加多个查询条件 该怎么写呢
Star骁北 发表于2年前
想增加多个查询条件 该怎么写呢
  • 发表于 2年前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

public List<Goddess> query(List<Map<String,Object>> params) throws Exception{
		List<Goddess> gs=new ArrayList<Goddess>();
		
		 	 Connection conn=DBUtil.GetConnection();
			 StringBuilder sb=new StringBuilder();
			 sb.append(" SELECT * from imooc_goddess where 1=1");
		
			 if(params!=null&&params.size()>0){
				 for (int i = 0; i < params.size(); i++) {
					 Map<String,Object> map=params.get(i);
					 //这样写就很明了  查询什么 关系是什么  值是什么   一下子就清楚了
					 sb.append(" and " + map.get("name")+" "+map.get("rela")+
							" "+ map.get("value"));
				}
			 }
			//会将这个sql语句加载到程序驱动中,但并非真执行。
			 PreparedStatement ptmt= conn.prepareStatement(sb.toString());
			 //查看sql语句
			 System.out.println(sb.toString());			 
			 ResultSet rs=ptmt.executeQuery();			 
			 Goddess g=null;
			 
			 //把查询到的结果集存放到    list的gs对象中
			while(rs.next()){
				g=new Goddess();
				g.setId(rs.getInt("id"));
				g.setUser_name(rs.getString("user_name"));
				g.setAge(rs.getInt("age"));				
				gs.add(g);
			}
		return gs;
	}
public List<Goddess> query(List<Map<String,Object>> params) throws Exception{
		goddessDao gd=new goddessDao();
		return gd.query(params);

	}
package test;


import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.imooc.model.Goddess;

import action.GoddessAction;

public class TestAction {
	
	public static void main(String[] args) throws Exception {
		GoddessAction action=new GoddessAction();
		
//		//这是测试单条查询
//		 List<Goddess> gs=action.query("王卡卡");
//		 for(int i=0;i<gs.size();i++){
//		System.out.println(gs.get(i).getAge()+","+gs.get(i).getUser_name());		
//		 }
		
//		//这是测试增加数据
//		Goddess g=new Goddess();
//		g.setUser_name("aalala");
//		g.setSex(1);
//		g.setAge(25);
//		g.setBirthday(new Date());
//		action.add(g);
		
//		//测试 删除数据
//		action.del(1);
		
//		//测试修改数据
//		Goddess g=new Goddess();
//		g.setId(2);
//		g.setUser_name("aalala");
//		g.setSex(1);
//		g.setAge(25);
//		g.setBirthday(new Date());
//		action.alter(g);
		List<Map<String,Object>> params=new ArrayList<Map<String,Object>>();
		
		Map<String,Object> param=new HashMap<String, Object>();
		param.put("name", "user_name");
		param.put("rela", "=");
		param.put("value", "'王卡卡'");
		
		//按照下面这三行的写法  只会查询id  不会查询name了  应该是被覆盖了
		//param.put("name", "id");
		//param.put("rela", "=");
		//param.put("value", "338");

		params.add(param);
		
		 List<Goddess> gs=action.query(params);
		 for(int i=0;i<gs.size();i++){
		System.out.println(gs.get(i).getAge()+","+gs.get(i).getUser_name());		
		 }
		
	}
}


共有 人打赏支持
粉丝 0
博文 2
码字总数 890
×
Star骁北
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: