我有一份聲明中像這樣:的Java PreparedStatement的SQL語法LIKE
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);
}
}
的conections準備好了,但是出現語法錯誤,準備好的語句的解析值如下:
"SELECT *
FROM table
WHERE group LIKE '%grp%';"
有何建議?
0123n用於編輯內聯,我試過4個空格,但它沒有工作.. – Triztian 2010-12-09 00:56:04
你確定應該有一個逗號+「,%」 – 2010-12-09 01:03:27
是的,它是一個整數分隔列表: 1, 3,56,7,8,6,5,6 – Triztian 2010-12-09 01:04:29