首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Java
Web 开发
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
用JAVABEAN如何实现多个条件查询!急!
[已结贴,结贴人:changml0929]
加为好友
发送私信
在线聊天
changml0929
菜鸟
等级:
可用分等级:
长工
总技术专家分:
12
总技术专家分排名:
204931
揭帖率:
94.44%
发表于:
2008-05-26 12:17:01
楼主
比如一个信息发布管理系统,如果想根据信息标题,发布时间,发布人其中的任意一个条件进行查询,但是只在一个JAVABEAN里面实现,怎么实现阿!请高手帮忙阿!
问题点数:
20
回复次数:
21
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
a1405
等级:
可用分等级:
富农
总技术专家分:
908
总技术专家分排名:
21106
发表于:
2008-05-26 12:49:39
1
楼 得分:
0
拼sql语句
eg:select * from news where ? = ?
第一个问号代表你按什么查,第二个代表你要查询的关键字是什么。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dalmatians
等级:
可用分等级:
贫农
总技术专家分:
51
总技术专家分排名:
123528
发表于:
2008-05-26 13:08:57
2
楼 得分:
0
在JAVABEAN中查询是什么意思,还是在数据库中查询呢?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hornbilltofy
等级:
可用分等级:
掌柜
总技术专家分:
7270
总技术专家分排名:
2747
发表于:
2008-05-26 14:16:14
3
楼 得分:
0
就是动态生成SQL语句嘛!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
burningice44
冰之舞 『아이스 댄스』
等级:
可用分等级:
贫农
总技术专家分:
4100
总技术专家分排名:
5046
发表于:
2008-05-26 14:23:46
4
楼 得分:
0
用if语句判断三个条件哪个为空,如果为空
则生成的sql语句没有该条件;
总得来说就是用if语句判断,拼凑sql语句
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
youhere1
卓越的人渣
等级:
可用分等级:
中农
总技术专家分:
378
总技术专家分排名:
39334
发表于:
2008-05-26 14:26:01
5
楼 得分:
0
一楼说的对, 这种情况就要靠传多参来解决. 应该不算很难,
只是要烦点.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fys249931556
java Study
等级:
可用分等级:
贫农
总技术专家分:
1064
总技术专家分排名:
18469
发表于:
2008-05-26 16:16:55
6
楼 得分:
0
暂时2中方法实现..
1. 1楼方法 select * from table where cols = ?
cols做变量..根据你点击的不同决定cols不同.
2. 笨点,把所有你可能要用到的列查询都作为写出来,直接根据传来参数的不同执行不同的查询语句..
其实用hibernate的不用这么麻烦了.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fys249931556
java Study
等级:
可用分等级:
贫农
总技术专家分:
1064
总技术专家分排名:
18469
发表于:
2008-05-26 16:17:53
7
楼 得分:
0
我说的第二个意思是...把所有可能要用到的查询都写出方法..
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jiaping108
crystyleBoy
等级:
可用分等级:
中农
总技术专家分:
1595
总技术专家分排名:
12935
发表于:
2008-05-26 16:47:11
8
楼 得分:
0
两个方法:
一:在bean的一个方法里拼SQL
二:针对这三个字段写3个方法
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luoyanxue
等级:
可用分等级:
贫农
总技术专家分:
95
总技术专家分排名:
92620
发表于:
2008-05-26 17:57:12
9
楼 得分:
7
没错动态生成SQL
public String getSQL(NoteBean note){
NoteBean note = note; //里面存放的是从页面获取查询的条件
String sql="select * from notetable";
if(3个查询条件有一个不为空) sql = sql + " WHERE ";
if(note.getDATE()!=null&¬e.getDATE().lenght>1) //当查询DATE 存在时
sql = sql+" DATE ="+note.getDATE();
if(note.getAUTHOR()!=null&¬e.getAUTHOR().lenght>1) //当查询AUTHOR 存在时
sql = sql+" AUTHOR ="+note.getAUTHOR();
if(note.getID()!=null&¬e.getID().lenght>1) //当查询ID 存在时
sql = sql+" ID ="+note.getID();
}
一种思路!~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luoyanxue
等级:
可用分等级:
贫农
总技术专家分:
95
总技术专家分排名:
92620
发表于:
2008-05-26 17:59:33
10
楼 得分:
0
没写RETURN sql;
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lzk2rxj
钢板
等级:
可用分等级:
长工
总技术专家分:
0
总技术专家分排名:
311804
发表于:
2008-05-26 19:45:41
11
楼 得分:
0
sql=select * from table where Primary key!=null;
if(username!=nul){
sql+=" and username="+username;
}
.......
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
changml0929
菜鸟
等级:
可用分等级:
长工
总技术专家分:
12
总技术专家分排名:
204931
发表于:
2008-05-26 21:15:05
12
楼 得分:
0
引用 9 楼 luoyanxue 的回复:
没错动态生成SQL
public String getSQL(NoteBean note){
NoteBean note = note; //里面存放的是从页面获取查询的条件
String sql="select * from notetable";
if(3个查询条件有一个不为空) sql = sql + " WHERE ";
if(note.getDATE()!=null&¬e.getDATE().lenght>1) //当查询DATE 存在时
sql = sql+" DATE ="+note.getDATE();
if(note.getAUTHOR()!=null&¬e.g…
为什么要length大于1啊?不太明白,呵呵 可否解说一下啊!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zk32373139
沙地羔羊
等级:
可用分等级:
贫农
总技术专家分:
189
总技术专家分排名:
61712
发表于:
2008-05-26 21:34:57
13
楼 得分:
0
写拼装SQL
根据条件的不同进行拼装
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Slayer_Boxer
Slayer_Boxer
等级:
可用分等级:
贫农
总技术专家分:
68
总技术专家分排名:
109127
发表于:
2008-05-26 23:21:02
14
楼 得分:
5
String sql=select * from table where 1=1;
if(bean.getName.equals("") && bean.getName!=null)
{
sql+="and name="+bean.getName+"";
}
if(bean.get??.equals("") && bean.get??!=null)
{
sql+="and ??="+bean.get??+"";
}
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jaytse
jay-tse
等级:
可用分等级:
贫农
总技术专家分:
86
总技术专家分排名:
97331
发表于:
2008-05-27 09:20:27
15
楼 得分:
0
9楼的方案俺们的持久层中到处都是
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luoyanxue
等级:
可用分等级:
贫农
总技术专家分:
95
总技术专家分排名:
92620
发表于:
2008-05-27 09:43:43
16
楼 得分:
0
有可能 NoteBean 初始化的时候 会给他赋 String ID = ""; 这种情况!~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luoyanxue
等级:
可用分等级:
贫农
总技术专家分:
95
总技术专家分排名:
92620
发表于:
2008-05-27 10:03:36
17
楼 得分:
0
length > 0
14楼的 bean.getName.equals("") 一个效果!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
oogamiyiqilou
oogami
等级:
可用分等级:
富农
总技术专家分:
93
总技术专家分排名:
93709
发表于:
2008-05-27 10:16:03
18
楼 得分:
0
恩 针对不同的条件 拼sql语句
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
changml0929
菜鸟
等级:
可用分等级:
长工
总技术专家分:
12
总技术专家分排名:
204931
发表于:
2008-05-28 11:23:11
19
楼 得分:
0
谢谢各位的帮忙!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yyandlh
棒槌!人不敲则不灵!
等级:
可用分等级:
贫农
总技术专家分:
177
总技术专家分排名:
64194
发表于:
2008-05-28 12:05:08
20
楼 得分:
8
拼接sql语句。如:(下面条件均为一个javabean中的属性)
String id = request.getParameter("maid");//条件1
String kind = request.getParameter("makind");//条件2
String dis = request.getParameter("madis");//条件3
String hql = "select * from Materiel m where ";//sql语句
String strWhere = "";//拼接段
List rlist = new ArrayList();
if("".equals(id)&&"".equals(kind)&&"".equals(dis)){//如果条件都没填则
hql="select * from Materiel ";
}else{
if ((id!=null)&&(!id.equals(""))){//开始组装sql语句
if(strWhere.equals("")){//strWhere为空则直接加条件
strWhere = "m.name='"+id+"'";
}else{//否则加"and"后再加条件
strWhere += "and m.name='"+id+"'";
}
}
if ((kind!=null)&&(!kind.equals(""))){//同上
if(strWhere.equals("")){
strWhere = "m.kind='"+kind+"'";
}else{
strWhere += "and m.kind='"+kind+"'";
}
}
if ((dis!=null)&&(!dis.equals(""))){//同上
if(strWhere.equals("")){
strWhere = "m.remark='"+dis+"'";
}else{
strWhere += "and m.remark='"+dis+"'";
}
}
hql=hql+strWhere;
这样最终的sql语句就出来了,你试试^_^
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
qingfeng_wu
分享
等级:
可用分等级:
乞丐
总技术专家分:
161
总技术专家分排名:
67737
发表于:
2008-05-28 13:41:47
21
楼 得分:
0
不知道怎么跟你说:“”,中间要做很多事情。不过你这样问也太笼统了些。。。。。
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友