文档章节

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

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} usertogroup{userid,groupid} group{id,name} 可以看出user和group为多对多的关系,用户可以有多个分组 现在有一个搜索功能,有多个group作为条件去查询用户,比如要...

_BiuBiu
2017/09/25
118
5
Android数据库高手秘籍(七)——体验LitePal的查询艺术

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

sinyu890807
2014/11/13
0
0
数据库之分库分表-垂直?水平?

一、数据库瓶颈   不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接...

尜尜人物
08/08
0
0
C# SQL优化 及 Linq 分页

每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。...

天才小龙
01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Dubbo分析之Cluster层

系列文章 Dubbo分析Serialize层 Dubbo分析之Transport层 Dubbo分析之Exchange 层 Dubbo分析之Protocol层 前言 紧接上文Dubbo分析之Protocol层,本文继续分析dubbo的cluster层,此层封装多个提...

ksfzhaohui
17分钟前
0
0
linux Ubuntu 安装 hyperledger fabric

一、apt-get update 二、安装docker sudo apt-get install docker.io 如果安装报错:E: Unable to locate package,请执行第一条。 # docker -v Docker version 1.6.2, build 7c8fca2 # dock......

八戒八戒八戒
20分钟前
1
0
神经网络基础及Keras入门

神经网络定义 人工神经网络,简称神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或...

Python女神
20分钟前
1
0
Pycharm上Django的使用 Day9

编辑条目: 1.创建edit_entry的URL模式 形参entry_id存储在URL中传递的ID,这个URL模式将预期匹配的请求发送给视图函数edit_entry() 2.编写视图函数edit_entry() 1处获取用户要修改的条目对象...

不会TC的猫
21分钟前
1
0
夹点getGripPoints/捕捉点getOsnapPoints

已知圆外一点,以及圆心半径,求圆的切点: 方法1: (b-y/a-x)*(n-y/m-x)=-1(a-x)平方+(b-y)平方=r平方联立方程组求解 方法1: CPoint CalcQieDian(CPoint ptCenter, CPoint ptOutside, do...

一个小妞
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部