jdbc 的sql语句怎么写多条件查询
有个表 有id age name sex class等字段
想做个jdbc的多条件查询 这些条件可以为空也可以不为空
简单的页面像这样:
用传统的
import oracle.jdbc.OraclePreparedStatement; // 这个是Oracle数据库的驱动才提供的
String sql = "Select * From employees Where 1=1 And (:pName IS null OR first_name = :pName) And (:pSalary IS null OR salary = :pSalary)"; // 注意这句YD的SQL
Connection con = openConnection(); // 数据库连接获取略
OraclePreparedStatement stat = (OraclePreparedStatement) con.prepareStatement(sql);
stat.setObjectAtName("pName", null);
stat.setObjectAtName("pSalary", 2500);
ResultSet rs = stat.executeQuery();
int cols = rs.getMetaData().getColumnCount();
while (rs.next()) {
for (int i = 1; i <= cols; i++) {
System.out.print(rs.getString(i) + "\t");
}
System.out.println();
}
List<object> param = new ArrayList<Object>();
if(id != null
[解决办法]
!"".equale(id)){
sql.append(" t.id=?");
param.add(id);
}
for(int i =0; i < param.size(); i ++) {
ps.setString(i + 1, param.get(i));
}