文档章节

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

Star骁北
 Star骁北
发布于 2015/10/15 23:21
字数 388
阅读 3
收藏 0
点赞 0
评论 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
oracle的一个分组查询语句,怎么写呢?

下面是农产品信息,共5张表: 市场 MARKET: MARKETID, TOWNID, MARKET_NAME 区县 TOWN: TOWNID, TOWNNAME; 农产品 PRODUCE: PRODUCEID, PRODUCENAME 销售类型 SELLTYPE: SELLTYPEID, SELLTY......

小猫王
2013/08/25
860
1
C# SQL优化 及 Linq 分页

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

天才小龙
01/05
0
0
Mycat分表分库怎么分?Mysql DBA学习

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

mo默瑶
05/31
0
0
怎么一步步编写简单的PHP的Framework(二十一)

前几天我讲到在SqlParser中完成SQL的解析,我已经讲了distinct,field,table,group,order等的简单实现,那么怎么实现where呢,没有where,这个SQL一直还是不能运行的。 对于where,我们可以想一...

阳光test
2012/12/25
0
6
PostgreSQL 行级安全性策略应用

概述 行级安全性策略是PG9.5新加的一个功能,它是一种粒度更细的,针对行级所做的权限控制。 它可以对每一个用户限制哪些行可以进行查询操作或增删改的操作。 2. 特性介绍 默认情况下,表是没...

tbing
2017/10/20
0
0
Android数据库高手秘籍(七)——体验LitePal的查询艺术

经过了多篇文章的学习,我们已经把LitePal中的绝大部分内容都掌握了。现在回想起来了,增删改查四种操作中的前三种我们都已经学完了,不知道现在使用起数据库来,你有没有感觉到格外的轻松和...

亭子happy
2015/09/07
1K
0
写一个“特殊”的查询构造器 - (四、条件查询:复杂条件)

复杂的条件 在 SQL 的条件查询中,不只有 where、or where 这些基本的子句,还有 where in、where exists、where between 等复杂一些的子句。而且即使是 where 这种基础的子句,也有多个条件...

MrQ被抢注了
05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

springboot常用注解

@SpringBootApplication: 包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 @Service: 用于标注业务层组件。 @RestController: 用于标注控制层组件(如strut...

GoldenVein
7分钟前
0
0
梯度下降法求多元线性回归及Java实现

对于数据分析而言,我们总是极力找数学模型来描述数据发生的规律, 有的数据我们在二维空间就可以描述,有的数据则需要映射到更高维的空间。数据表现出来的分布可能是完全离散的,也可能是聚...

冷血狂魔
12分钟前
2
0
如何进行大数据的入门级学习?

不知道你是计算机专业应届生还是已经从业者。总之,有java基础的学生学习大数据会轻松很多,零基础的小白都需要从java和linux学起。 如果你是一个学习能力特别强,而且自律性也很强的人的话可...

董黎明
21分钟前
0
0
使用Parcelable传递复杂参数

最近做AIDL传递对象,对象必须实现Parcelable的方法才可以被传递。 @Override    public int describeContents() {//这个 默认返回0就行了。        return 0;    }    ...

火云
22分钟前
0
0
十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发...

HJCui
32分钟前
0
0
word 使用mathtype 编写 数学公式

下载安装,这个链接命名。。。。 http://www.mathtype.cn/xiazai.html 安装之后会多出一个选项 使用内联方式插入图表 编写公式的界面 设置支持latex 语法 输入公式回车就可以看到结果...

阿豪boy
51分钟前
0
0
Promise

定义 Promise是异步编程的一种解决方案,所谓Promise就是一个容器,里面保存着某个未来才会结束的事件(通常是一个一步操作)的结果。 特点: 2.1 对象的状态不受外界影响,三种状态pending...

litCabbage
今天
1
0
设计模式:适配器模式

说明:在不改变旧接口代码的前提下,为该接口新增其他接口的功能 适配器模式可以分为:类适配器模式、对象适配器模式、接口适配器模式 前两种模式下,我会以播放器为例。老版的播放器(Playe...

人觉非常君
今天
0
0
使用VsCode搭建Java开发环境,创建springboot应用

1、在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X),输入关键词java、spring分别下载Java开发插件包和springboot插件包 2、配置参数 点击设置按钮,进入设置选项,配置用户设置 在用户...

qsyan
今天
23
0
调教属于你的“贾维斯”(给自己挖了一个很大的坑)

今天玩一下现在很火的人工智能。 废话不多说,先来看几张图: 看出什么蹊跷了吗? 再来看一个视频: https://www.zhihu.com/video/1002567561061511168 (演示网址和代码见文末) 人工智能离...

crossin
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部