![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
求解web项目中sql语句select * from tcapacity where tname=? 预编译问题 10
web项目中预编译sql语句select*fromtcapacitywheretname=?当我前台没有数据输入的时候,我将?的值设为tname为什么rs.next会为f...
web项目中预编译sql语句select * from tcapacity where tname=? 当我前台没有数据输入的时候,我将?的值设为tname为什么rs.next会为false,查询不到数据。而我直接将sql语句写成select * from tcapacity where tname=tname就为true了?如图片所示
展开
1个回答
展开全部
你用预处理的时候的tname是个变量,但是你下面那个sql这么写相当于两个字段在比较,这样永远是true了,你如果要比较tname这个字符串,应该用tname='tname',要有引号才对
追问
谢谢回答,大致懂了你的意思。那么如果我是想根据前台传回的值是否为空来查询,该怎么写呢,比如传回的是空就查询全部,传回的不为空就查询对应的数据,因为有很多字段要判断,单个写的话要写非常多,所以想通过一个sql搞定。
追答
你根据前台传回来的值来拼接SQL就可以了,比如:
String sql="select * from tcapacity where 1=1";
if(tname!=null){
sql+=" and tname="+tname;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询