怎么写这样的SQL语句?很难!!
要写一个函数,传入一些参数。把这些参数作为查询条件,但是这些参数可能有值,但同时也可能不需要。没说清楚吧,看这个例子。
一个函数
public foo(String key1, String key2, String key3) {
....
//写查询语句,以它们三个为条件
//如果这三个条件都有值,很简单
sqlStr = "select * from table where key1=" + key1 + " and key2=" + key2 + " and key3=" + key3 + ";";
//但是这三个key都可能为null,我们有时只需要查询一个或两个key,忽略掉另一个。
//再写sql语句就麻烦了。
sqlStr = "select * from table ";
if(key1==null) {
if(key2==null) {
if(key3==null) {
sqlStr += ";";
} else {
sqlStr += "where key3=" + key3 + ";";
}
} else {
sqlStr += " where key2=" + key2;
if(key3==null) {
sqlStr += ";"
} else {
sqlStr += " and key3=" + key3 + ";";
}
}
} else {
sqlStr += " where key1=" + key1;
if(key2==null) {
if(key3==null) {
sqlStr += ";";
} else {
sqlStr += " and key3=" + key3 + ";";
}
} else {
sqlStr += " and key2=" + key2;
if(key3==null) {
sqlStr += ";";
} else {
sqlStr += " and key3=" + key3 + ";";
}
}
}
}
要是参数再多一些,如5个,10个,怎么办?有没有简单一些的写法?