关于不定数目条件查询问题

Arqui 2004-05-11 10:24:24
我想实现一个能够实现输入不定数目条件可以进行查询的BEAN,但写到这里遇到问题了,不知道该怎么加入SQL语句中的AND和WHERE。大家帮忙解决啊,兄弟我一定感谢你。(具体实现一个查询界面,输入一个条件可以查询,2个也可以,3、4个均可,即使不输入条件就会把所有的select * from 表的结果集合显示出来)在线等,大家帮忙啊
String str="SELECT * FROM sellform WHERE",
str1="bookname LIKE '"+key1+"%'",
str2="id="+"'"+key2+"'",
str3="type="+"'"+key3+"'",
str4="price="+"'"+key4+"'";
keyi;
for(int i=1:i<=4;i++)
{ if(keyi!=null)
{ str=str+stri;
}
}
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arqui 2004-05-11
  • 打赏
  • 举报
回复
请教大家,是不是数据库可以实现任意条件组合查找呢????
跟数据库中设置的主键有关系吗????
kongxiangli(笑看红尘)你的条件是在+"SLDD = '"+sldd+"'";之下的,对不?
但我的查询想在不输入条件下就把所有的信息都显示出来。
我不知道知道时候那个WHERE和AND该怎么放。
凋零的老树 2004-05-11
  • 打赏
  • 举报
回复
sql = sql +"SELECT * FROM KHXXB WHERE ";
sql = sql +"SLDD = '"+sldd+"'";

//客户名称支持模糊查询
if (yhmc.trim().compareTo("")!=0)
sql = sql +" AND KHMC LIKE '%"+yhmc+"%' ";

if (yhbh.trim().compareTo("")!=0)
sql = sql +" AND KHBH = '"+yhbh+"'";
....
Arqui 2004-05-11
  • 打赏
  • 举报
回复
谢谢Arias(永恒之道),不过我的JSP学的很初级啊,麻烦您帮我解释一下:)
谢谢joy19(努力前进666),我马上就去做~!
joy19 2004-05-11
  • 打赏
  • 举报
回复
给你一个例子:
String sql2 = "insert into infodb_StatTable( strDepartment, strName, DateMonth";
String sql3 = ") values ('" + strDepartment + "','" + strName + "','" + DateMonth + "'";

if (strLateTimeAll.length() > 0)
{
sql2 += ",strLateTimeAll";
sql3 += (",'" + strLateTimeAll + "'");
}
if (strEarlyTimeAll.length() > 0)
{
sql2 += ",strEarlyTimeAll";
sql3 += (",'" + strEarlyTimeAll + "'");
}
if (strAbsentTimeAll.length() > 0)
{
sql2 += ",strAbsentTimeAll";
sql3 += (",'" + strAbsentTimeAll + "'");
}

if (strIllTimeAll.length() > 0)
{
sql2 += ",strIllTimeAll";
sql3 += (",'" + strIllTimeAll + "'");
}
if (strJobTimeAll.length() > 0)
{
sql2 += ",strJobTimeAll";
sql3 += (",'" + strJobTimeAll + "'");
}
if (strOverTimeAll.length() > 0)
{
sql2 += ",strOverTimeAll";
sql3 += (",'" + strOverTimeAll + "'");
}

if (strRemark.length() > 0)
{
sql2 += ",strRemark";
sql3 += (",'" + strRemark + "'");
}

String sql8 = sql2 + sql3 + ")";

if(javaQueryResult8.executeUpdate(sql8))
{
}
away5678 2004-05-11
  • 打赏
  • 举报
回复
这是个复杂问题。。。。

可以在前端做一个提示 用来设定条件与条件间的关系(and 或 or)
Arias 2004-05-11
  • 打赏
  • 举报
回复
把你的这些条件的sql语句改用stringbuffer来处理就是了!
Stringbuffer sb = new StringBuffer();
sb.append("SELECT * FROM sellform WHERE ");
然后在后面根据你的非null判断的结果来决定是否要用sb.append("");
最后得到的sql语句就是sb.tostring()那!
Arqui 2004-05-11
  • 打赏
  • 举报
回复
O !thanks for help
note note
Arias 2004-05-11
  • 打赏
  • 举报
回复
StringBuffer的作用实际上可以类同于String的使用,只不过在写一些sql语句的时候
由于某些限定条件的不确定性,那么就出现了是否要添加条件的处理那!
如果用string处理的时候,很可能不是很直观明了的现实

用stringbuffer的append方法实际上就是表示在你的前一句后面直接添加新的条件,这样你可以很容易实现对条件的控制处理!
我看到的一些代码就是这样处理的,我觉得这样比直接用string写sql语句可能要好些!
areshong 2004-05-11
  • 打赏
  • 举报
回复
还要注意的是,若用于构成SQL语句的输入参数含特殊字符的话(引号什么的),就死翘翘了,最好先转化一下
Arqui 2004-05-11
  • 打赏
  • 举报
回复
不要沉啊!大家帮忙啊!!谢谢大家了,虽然大家已经写了很多。但是我还是不能解决。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧