Java MySQL中的参数索引超出范围(1>;参数个数,为0)
我使用SpringMVC、Hibernate和Mysql,在我的工具中,我将sql文件称为outsite 这是我的刀:Java MySQL中的参数索引超出范围(1>;参数个数,为0),java,mysql,spring,model-view-controller,Java,Mysql,Spring,Model View Controller,我使用SpringMVC、Hibernate和Mysql,在我的工具中,我将sql文件称为outsite 这是我的刀: public List<RenterDto> searchByNamePersonalId(String name, String personalId) { Session session = sessionFactory.openSession(); String sqlString = GetSqlUtils.getSqlQueryString
public List<RenterDto> searchByNamePersonalId(String name, String personalId) {
Session session = sessionFactory.openSession();
String sqlString = GetSqlUtils.getSqlQueryString(RenterDaoImpl.class, SQL_DIR + SEARCH_BY_NAME_PERSON);
List<RenterDto> list = new ArrayList<RenterDto>(0);
try {
Query query = session.createSQLQuery(sqlString);
query.setParameter(0, name);
query.setParameter(1, personalId);
list = query.setResultTransformer(new AliasToBeanResultTransformer(RenterDto.class)).list();
} catch (HibernateException e) {
logger.error("error at RenterDaoImpl.searchByNameAddress: " + e.getMessage());
} finally {
session.close();
}
return list;
}
当我使用关键字“name”或“personalId”进行搜索时,我收到以下错误结果:
SqlExceptionHelper - SQL Error: 0, SQLState: S1009
SqlExceptionHelper - Parameter index out of range (1 > number of parameters, which is 0).
RenterDaoImpl - error at RenterDaoImpl.searchByNameAddress: could not execute query
如何解决这个问题?非常感谢你 您有以下表达式:
LIKE ('%'||'?')
我猜您希望“?”
成为一个参数。但这是一个很低的字符串,只有一个问号
相反:
LIKE CONCAT('%', ?)
通常,在MySQL中,您希望使用CONCAT()
进行字符串连接
LIKE CONCAT('%', ?)