数据库里面有一个Users表
表的字段为:
uname,age,sex,address
需要根据这些字段进行查询
如果什么条件都不输入则查询全部。
如只输了name只按uname进行查询
如输入了name 和age则按uname和age进行查询
依此类推
这样估计得判断10多次。。
如果字段再多些。。那判断起来非常的
所以在这里问一下有没有什么简单一点的办法。。
最好有个示例万分感谢
表的字段为:
uname,age,sex,address
需要根据这些字段进行查询
如果什么条件都不输入则查询全部。
如只输了name只按uname进行查询
如输入了name 和age则按uname和age进行查询
依此类推
这样估计得判断10多次。。
如果字段再多些。。那判断起来非常的
所以在这里问一下有没有什么简单一点的办法。。
最好有个示例万分感谢
解决方案 »
- 一直报错:Fatal exception occurred,program will exit··为什么?怎么解决?
- java如何定义发送数据包
- 求助:如何写个过滤器实现中文字符编码的转换
- java实现ftp上传
- 请教java中具体如何实现网格布局.
- 『高分』关于classpath
- 如何使用JAR工具创建.jar文件呢??
- 请问INSTALLSHIELD DEVELOPER V8.0 的注册码
- 关于《Thinking in Java》的问题
- 我有一个创意,是关于手机,掌上电脑等小型设备的,有高手可以与我联系,共同开发
- 导入包,*下是否代表所有?
- 请问如何获取swt中browser的html源码
if(name.length>0) where += " and uname='" + name + "'";
if(age.length>0) where += " and age=" + age;
if(address.length>0) where += " and address like '%" + address + "%'"
//依此类推
String sql = "select * from Users " + where
String where = " where 1=1";
if(name.length>0) where += " and uname='" + name + "'";if(ageFrom.length>0)
where += " and age>=" + ageFrom;if(ageTo.length>0)
where += " and age<=" + ageTo;if(address.length>0) where += " and address like '%" + address + "%'"
//依此类推
String sql = "select * from Users " + where
不过拼SQL要尽量避免
然后,通过类反射拿到这个Bean的所有属性,
循环取Bean的属性值,如果不为null,则拼装Sql的where条件部分。这样,就避免了大量if的问题,表或者条件数量变了,只需要改变bean的定义即可。
实际上,我们查询很多时候未必用"等于" 比如上面的age字段,还有address字段等, 很难用一个bean来实现通用性查询! 因为不知道那个列应该用like等操作.