我希望SQL搜索來搜索基於siteid(integer)
,從account(table)
refrenceno
和oldrefrenceno
,但我僅查詢搜索refrencno(varchar(15))
和oldrefrenceno(varchar(50))
。當用戶輸入siteid
來搜索數據時,它什麼都不顯示。where子句
Statement pst=null;
pst=ccn.createStatement();
String a=txt_search.getText();
String sql = "";
try {
int s = Integer.parseInt(siteid.getText());
sql ="select * from account WHERE siteid ="+s+" refrenceno='"+a+"' or oldrefrenceno='"+a+"' ";
}catch (Exception ex){
sql ="select * from account WHERE refrenceno='"+a+"' or oldrefrenceno='"+a+"' ";
}
ResultSet rs=pst.executeQuery(sql);
那麼什麼是你捕捉異常? –
爲什麼從字符串將siteid.getText()轉換爲int並將其再次添加到字符串? – Mono
使用字符串連接構造查詢是一種不好的做法,因爲它允許[SQL注入](https://en.wikipedia.org/wiki/SQL_injection)。改用[準備好的語句](https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html)。 – TEXHIK