不确定条件的查询
以下是通過串字符串的方式實現查詢:
??@Testpublic?void?query1()?throws?Exception{QueryRunner?run?=?new?QueryRunner(DataSourceUtils.getDatasSource());Contact?c?=?new?Contact();//c.setId("C001");c.setName("王");//c.setSex("1");//c.setTel("123");//c.setAddr("中國");//c.setAge(88);String?sql?=?"select?*?from?contacts?where?1=1";if(c.getId()!=null){sql+="?and?id='"+c.getId()+"'";}if(c.getSex()!=null){sql?=?sql+"?and?sex='"+c.getSex()+"'";}if(c.getName()!=null){sql+="?and?name?like?'%"+c.getName()+"%'";}if(c.getAddr()!=null){sql+="?and?addr?like?'%"+c.getAddr()+"%'";}if(c.getTel()!=null){sql+="?and?tel?like?'%"+c.getTel()+"%'";}System.err.println(">>>>>>:"+sql);List<Contact>?cs?=?run.query(sql,new?BeanListHandler<Contact>(Contact.class));for(Contact?cc:cs){System.err.println(cc);}} //不確定條件的查詢@Testpublic?void?query1()?throws?Exception{QueryRunner?run?=?new?QueryRunner(DataSourceUtils.getDatasSource());Contact?c?=?new?Contact();//c.setId("C001");c.setName("王'");c.setSex("1");c.setTel("123");c.setAddr("中國");c.setAge(55);String?sql?=?"select?*?from?contacts?where?1=1?";//匹配后面的所有andList<Object>?params?=?new?ArrayList<Object>();if(c.getId()!=null){sql+="?and?id=?";params.add(c.getId());}if(c.getSex()!=null){sql?=?sql+"?and?sex=?";params.add(c.getSex());}if(c.getName()!=null){sql+="?and?name?like??";params.add("%"+c.getName()+"%");}if(c.getAddr()!=null){sql+="?and?addr?like??";params.add("%"+c.getAddr()+"%");}if(c.getTel()!=null){sql+="?and?tel?like??";params.add("%"+c.getTel()+"%");}if(c.getAge()!=null){sql+="?and?age=?";params.add(c.getAge());}System.err.println(">>>>>>:"+sql);System.err.println(params);List<Contact>?cs?=?run.query(sql,new?BeanListHandler<Contact>(Contact.class),params.toArray());for(Contact?cc:cs){System.err.println(cc);}}總結
- 上一篇: DBUtils事务处理
- 下一篇: javax.naming.NameNot