求救!关于实现一个动态的查询方法!!!

mx1029 2003-10-30 04:25:20
要求用户可以在11个条件中任意输入一个条件然后动态生成SQL语句,写在javabean里。形式大致如下:
public String Dynamic_SQL(String S_AssetName,String S_Unit,float F_Number,String S_DeptName,String S_UserName,String S_BuyTime,String S_EndTime,String S_FactoryNum,String S_Spec,String S_ProducingArea,float F_Price)
方法Dynamic_SQL是在jsp页面根据输入的任意条件调用的方法。可是11个条件又可以任意的组合成新的条件,还要动态的生成SQL语句。。。。小弟实在是想不出好办法。。。。所以希望大家想想办法。。。谢谢了。
...全文
82 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fkpwolf 2003-11-05
  • 打赏
  • 举报
回复
wwwtom(静隙行风) 不好,其中的"and"就很不好处理。
lynx1111(任我行:曾率三千菜鸟夜袭珍珠港--被俘) 的方法显然更加专业。
mx1029 2003-10-31
  • 打赏
  • 举报
回复
谢谢大家了,我已经按照lynx1111的方法实现了,我马上把分给大家。
joincsdn 2003-10-30
  • 打赏
  • 举报
回复
来晚了!
xinshou1979330 2003-10-30
  • 打赏
  • 举报
回复
wwwtom(静隙行风)说的没错啊
这个方法 可行啊
ljx0486 2003-10-30
  • 打赏
  • 举报
回复
我同意wwwtom(静隙行风)
這是最簡單的
breeze517 2003-10-30
  • 打赏
  • 举报
回复
wwwtom(静隙行风) 的方法很对阿
凋零的老树 2003-10-30
  • 打赏
  • 举报
回复
if (str.compareTo("") ==0 )
sql = sql +"and ....";
lynx1111 2003-10-30
  • 打赏
  • 举报
回复
你是一个form里面有11个文本框,用于用户填数据,然后搜索吗?
如果是这样sql server数据库可以考虑:
--模糊查询的方法:
select * from 表
where (name like '%'+isnull(@name,'')+'%')
and (age=@age or isnull(@age,0)=0)
and (addr like '%'+isnull(@addr,'')+'%')

--全匹配的查询方法:
select * from 表
where (name=@name or isnull(@name,'')='')
and (age=@age or isnull(@age,0)=0)
and (addr=@addr or isnull(@addr,'')='')
因为Transact_sql自带的isnull方法处理这个比较容易
把生成的sql 语句传入javabean,而不是传11个参数。
(个人愚见未经测试仅供参考!)
zj2977 2003-10-30
  • 打赏
  • 举报
回复
与其这样,还不如就一个字符串,然后通过判断不同标识符来确定属于什么条件
mx1029 2003-10-30
  • 打赏
  • 举报
回复
我想过了,不能用if语句,11个条件有多少组合啊?
wwwtom 2003-10-30
  • 打赏
  • 举报
回复
先写个sql="select * from form where"
然后拼这个语句,例如
if ((userName == null) || (userName.length() < 1)) {
}else{
sql+= "UserName='"+userName+"' and";
countsql+= "UserName='"+userName+"' and";
}
明白了吧,给分吧
mx1029 2003-10-30
  • 打赏
  • 举报
回复
忘了补充了,输入的11个任意条件在同一个视图中分别为不同的字段。
小弟继续关注。谢谢大家了。。。。

81,092

社区成员

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

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