我在做一个查询系统... 我想问一下前辈们... 我想做一个多项查询的 假如我有5项提供查询 可以按名字 类型 编号等.. 如果我添其中一项 就按添的那项给我返回结果 如果我添其中两项或3项 它就按综合的给我查询出结果 我想请前辈们指导我一下看该怎么写其中数据库连接层的这个包含SQL语句的查询 ... 谢谢了 希望可以帮忙写个例子传上来 急用 在线等回复!!!!
调试欢乐多
哈哈真巧
其实很简单,你做一个QueryNode类,需要查询项要set进去
如有一项是name,这个类有一个setName(String name)方法在生成sql的时候一个一个便利这个QueryNode的属性,如果有值,则添加到where里面
摸索着做,其实也很简单的
try {
ArrayList list = new ArrayList(10);
StringBuffer sql = new StringBuffer();
sql.append("select * from myDB ");
boolean isToAddAnd = false;
HashMap map = node.getQueryParams();
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
if (isToAddAnd) {
sql.append(" and ");
}else{
sql.append(" where ");
}
sql.append(key + "=?");
list.add(map.get(key));
isToAddAnd = true;
}
PreparedStatement statement = getStatment(sql.toString());
if (statement == null) {
return null;
}
for (int i = 0; i < list.size(); i++) {
statement.setString( (i + 1), (String) list.get(i));
}
return statement;
}
catch (SQLException ex) {
return null;
}
}大致如此,QueryNode里有一个HashMap,用来存储查询条件细节可以再调整
必须结贴才有分,把分数添加到你要给分的人拜师?哈哈,你可以开个拜师贴呀,肯定有人来应聘的,哈哈