0 0

关于条件查询中赋值3

String TempStr = " SELECT INFO_GUID,  INFO_ID, INFO_NAME, INFO_DESC  FROM  INFO_MESSAGE";

StringBuffer SQLWhere = new StringBuffer();

SQLWhere.append(" WHERE 1 = 1 AND");

if(INFO_ID ==null || INFO_ID.equals("")){
}else{
        SQLWhere.append(" AND INFO_ID =? ");
}

if(INFO_NAME ==null || INFO_NAME.equals("")){
}else{
        SQLWhere.append(" AND INFO_NAME =? ");
}

if(INFO_DESC ==null || INFO_DESC.equals("")){
}else{
        SQLWhere.append(" AND INFO_DESC=? ");
}
String SQLStr = TempStr + SQLWhere;
PreparedStatement pstmt =  conn.prepareStatement(SQLStr);

到这边 我遇到一个 问题
我怎么知道  索引 给 对应的占位符  赋值

如果 三个条件都有值的话
pstmt.setString(1, "ID");
pstmt.setString(2, "NAME");
pstmt.setString(3, "Desc");

但如果 只有 其中的两个  怎么办     各位有空  帮忙  看看    知道怎么解决的  告诉我一下   非常谢谢!
DAO 
2011年7月10日 16:44

1个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
String TempStr = " SELECT INFO_GUID,  INFO_ID, INFO_NAME, INFO_DESC  FROM  INFO_MESSAGE"; 

StringBuffer SQLWhere = new StringBuffer(); 

SQLWhere.append(" WHERE 1 = 1 AND"); 

if(INFO_ID ==null || INFO_ID.equals("")){ 
}else{ 
        SQLWhere.append(" AND INFO_ID =? "); 
} 

if(INFO_NAME ==null || INFO_NAME.equals("")){ 
}else{ 
        SQLWhere.append(" AND INFO_NAME =? "); 
} 

if(INFO_DESC ==null || INFO_DESC.equals("")){ 
}else{ 
        SQLWhere.append(" AND INFO_DESC=? "); 
} 
String SQLStr = TempStr + SQLWhere; 
PreparedStatement pstmt =  conn.prepareStatement(SQLStr); 

引用

int i=1;
if(!(INFO_ID ==null || INFO_ID.equals(""))){
pstmt.setString(i++, "ID"); 
}
if(!(INFO_NAME ==null || INFO_NAME.equals(""))){
pstmt.setString(i++, "INFO_NAME"); 
}
……

2011年7月10日 19:51

相关推荐

Global site tag (gtag.js) - Google Analytics