gpt4 book ai didi

LIKE 的 Java PreparedStatement SQL 语法

转载 作者:行者123 更新时间:2023-11-29 02:36:26 26 4
gpt4 key购买 nike

我有一个准备好的声明:

private static final String SQL_LIST_GROUP = "SELECT * 
FROM table
WHERE group LIKE ?;"

我的函数,我的函数如下(缩短并正确声明了 SQL 对象):

public List< MyType > getGroupList(Long grp) {  
Connection link = null;
PreparedStatement query = null;
ResultSet rstList = null;
List< MyType > list = new ArrayList< MyType >();
try {
link = MySQL.getConnection();
link.setAutoCommit(false);
query = link.prepareStatement(SQL_LIST_GROUP);
query.setString(1, "%"+grp.toString()+",%");
rstList = query.executeQuery();
link.commit();
while (rstList.next()) {
list.add(MapFields(rstList));
}
return list;
} catch (SQLException e) {
throw new DAOException(e);
} finally {
close(link, query, rstList);
}
}

连接正确,但出现语法错误,解析值的准备语句如下:

"SELECT * 
FROM table
WHERE group LIKE '%grp%';"

有什么建议吗?

最佳答案

我还看到 PreparedStatemts 中的分号问题。

此外,该方法的参数称为“grp”,但在调用 setString 时使用了“group”。这是一个类型,还是问题的一部分? group.toString() 应该足够了,不需要 valueOf/longValue 的东西。

另外,'group' 是 MySQL 中的保留字。

关于LIKE 的 Java PreparedStatement SQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4393860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com