zoukankan      html  css  js  c++  java
  • 必须声明表变量 "@P0"

    mybatis提示错误

    ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明表变量 "@P0"。
    ; uncategorized SQLException for SQL []; SQL state [S0001]; error code [1087]; 必须声明表变量 "@P0"。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明表变量 "@P0"。
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
        at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
        at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447)

    原因是SQL语句中表名作为一个变量,必须写成${tableName}, 而不是写成#{tableName}作为一个参数。

        <select id="queryList" resultType="Map" databaseId="sqlserver">
            SELECT * FROM
            (
            SELECT
                    D.*, ROW_NUMBER () OVER (ORDER BY TmStamp DESC) RN
            FROM
                    ${tableName} D
            ) T
            <if test="limit!=null and offset!=null">
                WHERE RN&lt;=#{limit}+#{offset} AND RN&gt;#{offset}
            </if>
        </select>

    修改后正常。

  • 相关阅读:
    修改input:file样式
    gruntjs
    C#Lambda表达式
    C#委托与事件讲解(一)
    Linq的语法以及常用的扩展方法
    正则表达式就这么简单!
    C#参考之sealed密封类(转)
    Python学习(六)
    Python学习(一)
    自动化测试之JDBC连接、分布式负载
  • 原文地址:https://www.cnblogs.com/legendjslc/p/7889204.html
Copyright © 2011-2022 走看看