Code Bye

sql提示错误

选择语句是:
<select id=”findByCondition” resultMap=”RM_SpUser”>
select
<include refid=”columns” />
from sp_user
<include refid=”findByCondition_where” />
order by orderCount desc, createTime desc
</select>
出现错误提示:
Error querying database.  Cause: java.sql.SQLException: No value specified for parameter 1
### The error may exist in file [E:\eclipseEE\aaa\target\classes\mapper\SpUserMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT         userId,phone,token,password,status,name,sex,headImageUrl,orderCount,note,createTime,updateTime       FROM sp_user          WHERE  phone = ?         LIMIT 0,1
### Cause: java.sql.SQLException: No value specified for parameter 1
; bad SQL grammar []; nested exception is java.sql.SQLException: No value specified for parameter 1
解决方案

10

引用:

传递参数的时候用的是:
SpUser loginUser = findUserByPhone(phone);
private SpUser findUserByPhone(String phone) throws Exception {
SpUser findUser = new SpUser();
findUser.setPhone(phone);
findUser = userDao.findOneByCondition(findUser);
return findUser;
}
public T findOneByCondition(T t) throws Exception {
if (t == null)
throw new Exception(” obj can”t null!”);
return (T) sqlSessionTemplate.selectOne(this.getNamespace(t)
+ ID_FINDONEBYCONDITION, t);
}

你这是mysql吗  在后台加查询条件phone能查到吗
LIMIT 是mysql的语法
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录

5

应该是数据库表未与程序中的映射对应,仔细检查一下。

5

是不是你where条件里那么多条件。而你传过来的只有一个phone导致的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明sql提示错误