多条件可选查询

我是小木木 2011-11-17 09:16:40
在前台有几个查询条件的填写。填写了姓名后按照姓名模糊查找,填写了年龄后可以按年龄范围查找,填写了成绩后可以按成绩查找,这三个条件任写其中的两个或多个都可以按其对应的条件查找出来!不分先后!
...全文
173 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
deng_yuxi 2011-11-18
  • 打赏
  • 举报
回复
把条件理清楚了,很easy的!不相信,自己试试呗
xiaoqiuwyh 2011-11-18
  • 打赏
  • 举报
回复
StringBuffer,然后用append
地雷 2011-11-18
  • 打赏
  • 举报
回复
ibatis的SQLmapping里面有isNotEmpty判断
Aquarius_T 2011-11-18
  • 打赏
  • 举报
回复

package com.bt.employee.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bt.employee.dao.EmployeeDAO_Query;
import com.bt.employee.entity.Employee;
import com.bt.employee.util.DBUtil;

public class EmployeeDAOImpl_Query1 implements EmployeeDAO_Query{

public List<Employee> specificInquiresr(String ename,
String age, String grade) throws SQLException {
Connection conn = DBUtil.getConnection();
List<Employee> employees = new ArrayList<Employee>();
StringBuffer sql = new StringBuffer();
sql.append("select * from 表 where 1=1");
//String ename1 = ename.trim();
if(ename.trim()!=""){
sql.append(" and ename like '%" + ename +"%'");
}

if(age.equals("0")){
sql.append(" " );
}else if(age.equals("1")){
sql.append(" and age<60" );
}else if(age.equals("2")){
sql.append(" and salary between 60 and 80" );
}else if(age.equals("3")){
sql.append(" and salary between 80 and 100" );
}
if(grade!=""){
sql.append(" and grade= " + grade);
}

String sql1 = sql.toString();
PreparedStatement ps = conn.prepareStatement(sql1);
System.out.println(sql1);
ResultSet rs = ps.executeQuery();
while(rs.next()){
Employee e = new Employee();
e.setId(rs.getLong("id"));
e.setEname(rs.getString("ename"));
e.setAge(rs.getInt("age"));
e.setSalary(rs.getDouble("grade"));
employees.add(e);
}
return employees;
}

}



如果
Aquarius_T 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenxiaomumu 的回复:]
String sql="select pid,pname,model,price,manufact,stockNum,inDate,state from product where state=0 ";
if(ep.getPname()!=""){
System.out.println("==name"+ep.getPname());
sql=sql+" and pname like '%"……
[/Quote]

最好用StringBuffer用String的话判断一个就要创建一个对象。。。
幸福的起点 2011-11-17
  • 打赏
  • 举报
回复
软件开发群:128119852,欢迎加入。
我是小木木 2011-11-17
  • 打赏
  • 举报
回复
String sql="select pid,pname,model,price,manufact,stockNum,inDate,state from product where state=0 ";
if(ep.getPname()!=""){
System.out.println("==name"+ep.getPname());
sql=sql+" and pname like '%"+ep.getPname()+"%'";
}
else if(ep.getModel()!=""){
System.out.println("==model"+ep.getModel());
sql=sql+" and model like '%"+ep.getModel()+"%'";
}
else if(ep.getManufact()!=""){
System.out.println("==manufact"+ep.getManufact());
sql=sql+" and manufact like '%"+ep.getManufact()+"%'";
}
else if(ep.getPrice().toString()!=""){
System.out.println("==price"+ep.getPrice());
sql=sql+" and price = "+ep.getPrice()+"";
}
else if(ep.getStockNum().toString()!=""){
System.out.println("==stocknum"+ep.getStockNum());
sql=sql+" and stockNum = "+ep.getStockNum()+"";
}
dracularking 2011-11-17
  • 打赏
  • 举报
回复
这个,就是把前台有的传到数据库查询就是了
  • 打赏
  • 举报
回复
需求好模糊~? stringbuffer append

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧