文档章节

想增加多个查询条件 该怎么写呢

Star骁北
 Star骁北
发布于 2015/10/15 23:21
字数 388
阅读 3
收藏 0
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());		
		 }
		
	}
}


© 著作权归作者所有

共有 人打赏支持
Star骁北
粉丝 0
博文 2
码字总数 890
作品 0
大连
程序员
私信 提问
MySQL数据库之多条件查询索引实现(项目中经常用到)

案例:当我们在进行列表查询的时候,会有很多条件,但并不是所有条件我们都会在一起查询都使用到,也不知道有哪个条件一定会使用,这让mysql的以列的左前綴的索引方式显得有些力不从心,加入...

扬花落尽丶
2017/10/23
0
0
多对多表关联,多条件查询

有三个表 user{id,name} user_to_group{user_id,group_id} group{id,name} 可以看出user和group为多对多的关系,用户可以有多个分组 现在有一个搜索功能,有多个group作为条件去查询用户,比...

_BiuBiu
2017/09/25
144
5
oracle的一个分组查询语句,怎么写呢?

下面是农产品信息,共5张表: 市场 MARKET: MARKET_ID, TOWN_ID, MARKET_NAME 区县 TOWN: TOWN_ID, TOWN_NAME; 农产品 PRODUCE: PRODUCE_ID, PRODUCE_NAME 销售类型 SELL_TYPE: SELL_TYPE_I......

小猫王
2013/08/25
870
1
Android数据库高手秘籍(七)——体验LitePal的查询艺术

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40153833 经过了多篇文章的学习,我们已经把LitePal中的绝大部分内容都掌握了。现在回想起来了,增删改查四种操作中的前...

sinyu890807
2014/11/13
0
0
Mycat分表分库怎么分?Mysql DBA学习

Mycat分表分库虽然能解决大表对数据库系统的压力,但也有一些不利,因此Mycat分表分库要先解决的问题是,分不分库,分哪些库,什么规则分,分多少分片。那么究竟是怎么分的呢? 1、能不分就不...

mo默瑶
2018/05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
24分钟前
1
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
36分钟前
0
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
今天
1
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
今天
1
0
java8的时间和`Date`的对比

java8的时间和Date的对比 java8提供了新的时间接口。相对Date,Calendar,个人感觉最大的好处是对时间操作的学习成本很低,比Calendar低。 1. LocalDate,LocalTime,LocalDateTime LocalDate 代...

北风刮的不认真了
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部