做一个查询。对于一个页面、有文本框、下拉框、获取文本的值作为查询条件。 输入其中的一个条件也能查询。sql应怎样写

解决方案 »

  1.   

    如果是自己直接用JDBC,那么就根据已有条件情况来拼装SQL;而Hibernate和MyBatis这类组件都支持条件组装的查询,Google下就有样例了。
      

  2.   

    eg:select * from table where 下拉框 = '下拉框value' and 文本框 like '%'+ 文本框value +'%'
      

  3.   

    String sql = "Select ..... Where 1=1 ";
    if (name != null) {
       sql = sql + "And name='"+name+"' ";
    }
    if (sex != null) {
       sql = sql + "And sex='"+sex+"' ";
    }
    不过呢,这样直接拼,存在SQL注入漏洞,所以最好是用PrepareStatement,然后用set来设置参数。
    这个改进,你可以先尝试自己顺利成功的实现SQL拼装后,再学习下怎么改为PrepareStatement
      

  4.   


       首先真心的先谢谢你。 你说的我也懂了,也能用Stringbuffer拼接  。  
              其次就是问你、在oracle数据库里有一列dates是时间值为“2012-1-1”  只截取年份作为查询条件
                   的sql语句应该怎样写。
      

  5.   

    Oracle有函数的,你自己可以查查,大概是:Where YEAR(dates)=2012
      

  6.   


    我看函数了这样能执行查询年份 select to_char(dates,'YYYY')  from 表名 、
                   但怎样把这个sql语句、作为查询条件从而在查询数据啊?
      

  7.   

    跟我7楼贴的类似:
    Select *
    From 表名
    Where to_char(dates,'YYYY') = '2012'