求各位检查一下,为什么总报错 You have an error in your SQL syntax;

谁能检查一下,为什么总报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
这个SQL语句应该没有错误吧
img

sql没啥问题,但你的理解有问题,sql的=只能有一个值,你却把loginName当成了集合,如果你想查询,多个登录名,那么sql里面不是有这样的类型吗:枚举

select * from 表名 where loginName in (?,?,?,?......)

可是你下面的操作我又看不懂了,你居然想让loginName成为一个复杂的对象,让他当其他的字段属性,比如说 一个表里面有登录名,密码,昵称,年龄。。
你却想让一个字段名去充当所有字段名,这操作实在看不懂

如果你是想通过一个对象,里面有登录名,密码,真实名字查询对象,那么对应的用户表里应该有与之对应的字段,这个这三个数据来查询表数据
sql如下

select * from 表名 where loginName=? and realName=? and pwd=?

然后再java里面分别给占位符赋值即可

你的?占位符替换失败了,你看下BaseDao.execute方法里的?替换是不是有问题,导致实际运行的sql还是loginName = ?

你打印一下sql语句看下

你确定这玩意是用?来占位吗,不是{0}、@param啥的
你直接把参数值拼接到SQL后面看能不能跑,能跑就说明参数占位注入失败了