我希望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