sql语句可以在mysql中执行但不能使用mybatis

时间:2017-08-30 13:00:12

标签: mybatis

这是我的SQL语句:

<select id="selectRanking" parameterType="java.util.HashMap"
        resultMap="BaseResultMap">
        set @rownum=0;
        select @rownum=@rownum+1 as rank, s.userId as userId, s.stageId as stageId, s.encryptName as encryptName, s.lastModifyTime as lastModifyTime, s.friendNum as friendNum
        from T_Friend_Ranking s
        WHERE s.stageId=#{record.stageId,jdbcType=BIGINT} AND  s.friendNum!=0
        order by friendNum DESC ,lastModifyTime ASC limit #{record.rankingNum}
</select>

和BaseResultMap:

<resultMap id="BaseResultMap" type="FriendRanking">
    <constructor>
        <idArg column="userId" javaType="java.lang.Long" jdbcType="BIGINT"/>
        <idArg column="stageId" javaType="java.lang.Long" jdbcType="BIGINT"/>
        <arg column="encryptName" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <arg column="lastModifyTime" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
        <arg column="friendNum" javaType="java.lang.Long" jdbcType="BIGINT"/>
        <arg column="rank" javaType="java.lang.Integer" jdbcType="INTEGER"/>
    </constructor>
</resultMap>

例外是:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   近

     

查询数据库时出错。原因:   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本,用于在'select s.userId附近使用正确的语法   as userId,s.stageId as stageId,s.encryptName as encryptName,s'at   第2行       ###文件中可能存在错误[FriendRankingMapper.xml] ###错误可能涉及com。***。FriendRankingMapper.selectRanking-Inline ###   设置参数时发生错误### SQL:set @ rowNum = 0;
  选择s.userId为userId,s.stageId为stageId,s.encryptName为   encryptName,s.lastModifyTime as lastModifyTime,s.friendNum as   friendNum,(@ redNum:= @ rowNum + 1)作为排名   T_Friend_Ranking s WHERE s.stageId =?订购   friendNum DESC,lastModifyTime ASC限制? ###   原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你   您的SQL语法有错误;检查对应的手册   您的MySQL服务器版本,以便在'select'附近使用正确的语法   s.userId为userId,s.stageId为stageId,s.encryptName为   在第2行加密名称,s';糟糕的SQL语法[];嵌套异常是   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本,用于在'select s.userId附近使用正确的语法   as userId,s.stageId as stageId,s.encryptName as encryptName,s'at   第2行   org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)

我做了一个断点,准备好后复制sql语句并直接在mysql中运行:没有错误,我可以得到正确的结果。 我该如何解决这个问题?

0 个答案:

没有答案