Java sql选择错误
我有一个Java代码:Java sql选择错误,java,mysql,sql,prepared-statement,Java,Mysql,Sql,Prepared Statement,我有一个Java代码: String searchPerson = "select * from persons where surname like ? and TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE()) <= ?"; //connect to DB PreparedStatement statement = connect.prepareStatement(searchPerson); statement.setString(1,"%"+ sur
String searchPerson = "select * from persons where surname like ? and TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE()) <= ?";
//connect to DB
PreparedStatement statement = connect.prepareStatement(searchPerson);
statement.setString(1,"%"+ surname + "%");
statement.setInt(2, age);
ResultSet resultPerson = statement.executeQuery();
//..code
如何正确选择?救命啊
谢谢 在SQL中尝试更改行
"select * from persons where surname like ? and TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE()) <= ?";
但对于SQL,以下格式应该可以接受:
SELECT * FROM persons where surname like 'Name'
您是否手动检查了数据库中的sql语句?@ZerO不,我从未检查过,请先检查一下。如果请求在您的数据库中不起作用,您就知道您的请求有错误syntax@ZerO是的,我有不正确的请求,但我没有看到错误。我不太熟悉sql请求。但肯定有人能帮你。既然我们知道问题出在测试代码之后的请求结构上,那么我在TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE())中的
String searchPerson=“select*from persons”出现了错误,而我对Java没有太多经验,但如果选择*(所有内容),我怀疑错误来自于此从表中,它为您提供了一个结果数组,而不是一个字符串。要测试这一点,您可能可以修改查询如下:从姓氏为“?”和TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE())的人员中选择姓氏@user3629171当你调用select*时,试着将其保存在列表na中,因为它提供了多个RecID。@Alex as u using resultset我不认为会有多个记录的问题prob是其他的,你可以发布stacktrace吗?@Alex@Krishna我对字符串searchPerson=“select*from persons where timesdiff(年份,出生日期,CURDATE())
"select * from persons where surname like '?' and TIMESTAMPDIFF(YEAR,dateOfBirth,CURDATE()) <= ?";
SELECT * FROM persons where surname like Name
SELECT * FROM persons where surname like 'Name'