比如一个信息发布管理系统,如果想根据信息标题,发布时间,发布人其中的任意一个条件进行查询,但是只在一个JAVABEAN里面实现,怎么实现阿!请高手帮忙阿!

解决方案 »

  1.   

    拼sql语句eg:select * from news where  ? = ?第一个问号代表你按什么查,第二个代表你要查询的关键字是什么。
      

  2.   

    在JAVABEAN中查询是什么意思,还是在数据库中查询呢?
      

  3.   

    用if语句判断三个条件哪个为空,如果为空
    则生成的sql语句没有该条件;
    总得来说就是用if语句判断,拼凑sql语句
      

  4.   

    暂时2中方法实现..
    1. 1楼方法  select * from table where cols = ? 
       cols做变量..根据你点击的不同决定cols不同.
    2. 笨点,把所有你可能要用到的列查询都作为写出来,直接根据传来参数的不同执行不同的查询语句..
    其实用hibernate的不用这么麻烦了.
      

  5.   

    两个方法:
    一:在bean的一个方法里拼SQL
    二:针对这三个字段写3个方法
      

  6.   

    没错动态生成SQL
    public String getSQL(NoteBean  note){    NoteBean  note = note; //里面存放的是从页面获取查询的条件    String  sql="select * from notetable";    if(3个查询条件有一个不为空) sql = sql + " WHERE ";    if(note.getDATE()!=null&&note.getDATE().lenght>1) //当查询DATE 存在时
             sql = sql+" DATE ="+note.getDATE();    if(note.getAUTHOR()!=null&&note.getAUTHOR().lenght>1) //当查询AUTHOR 存在时
              sql = sql+" AUTHOR ="+note.getAUTHOR();    if(note.getID()!=null&&note.getID().lenght>1) //当查询ID 存在时
              sql = sql+" ID ="+note.getID();
    }
    一种思路!~
      

  7.   

    sql=select * from table where Primary key!=null;
    if(username!=nul){
    sql+=" and username="+username;
    }
    .......
      

  8.   

    为什么要length大于1啊?不太明白,呵呵 可否解说一下啊!
      

  9.   

    写拼装SQL根据条件的不同进行拼装
      

  10.   

    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??+"";
    }
      

  11.   

    有可能 NoteBean 初始化的时候 会给他赋 String ID = ""; 这种情况!~
      

  12.   

    length > 014楼的 bean.getName.equals("") 一个效果!
      

  13.   

    恩 针对不同的条件 拼sql语句
      

  14.   

    拼接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.re='"+dis+"'";
                }else{
                   strWhere += "and m.re='"+dis+"'";
                }
            }
    hql=hql+strWhere;
    这样最终的sql语句就出来了,你试试^_^