为什么的我的结果集没有按照sql要求输出相应的结果呢???
为什么的我的结果集没有按照sql要求输出相应的结果呢???
Star骁北 发表于2年前
为什么的我的结果集没有按照sql要求输出相应的结果呢???
  • 发表于 2年前
  • 阅读 12
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

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");
			 
			//会将这个sql语句加载到程序驱动中,但并非真执行。
			 PreparedStatement ptmt= conn.prepareStatement(sb.toString());
			
			 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语句
			 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;
	}
package action;

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

import com.imooc.dao.goddessDao;
import com.imooc.model.Goddess;

import sun.applet.Main;

public class GoddessAction {
	
	public static void main(String[] args) throws Exception {
		goddessDao g=new goddessDao();
		
		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", "'王卡卡'");
		params.add(param);
		
		//把g.query查询到的值赋给 list对象result中
		List<Goddess> gs = g.query(params);
		for(int i=0; i<gs.size(); i++){
			System.out.println(gs.get(i).toString());
		}
//		for(Goddess r:result){
//			System.out.println(result.toString());
//		}
		
//		 List<Goddess> gs=g.query();
//		 
//		 for (Goddess e:gs){
//			 System.out.println(e.getUser_name()+","+e.getAge());
//		 }
		
//		Goddess g1=new Goddess();
//
//		g1.setUser_name("王卡卡");
//		g1.setSex(1);
//		g1.setAge(2);
//		g1.setBirthday(new Date());
//		g1.setId(337);
		
//		g.updateGoddess(g1);
//		g.delGoddess(337);
		
//		Goddess g2= g.get(1);
//		System.out.println(g2.toString());
		
		
	}
}

                下面是运行结果

==========================================

 SELECT * from imooc_goddess where 1=1 and user_name = '王卡卡' 

Goddess [id=1, user_name=小红, sex=null, age=23, birthday=null, email=null, mobile=null, create_user=null, update_data=null, isdel=null]

Goddess [id=2, user_name=小黑, sex=null, age=23, birthday=null, email=null, mobile=null, create_user=null, update_data=null, isdel=null]

Goddess [id=335, user_name=asd , sex=null, age=25, birthday=null, email=null, mobile=null, create_user=null, update_data=null, isdel=null]

Goddess [id=336, user_name=???, sex=null, age=25, birthday=null, email=null, mobile=null, create_user=null, update_data=null, isdel=null]

Goddess [id=338, user_name=王卡卡, sex=null, age=25, birthday=null, email=null, mobile=null, create_user=null, update_data=null, isdel=null]

输出的竟然是整张表的数据!!

问题来了 为什么action中LIST对象 gs存的是数据表中所有的数据  而不是sql的查询结果呢???????、

求指教 感谢!!!!!!!


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