Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java iBATIS2.0动态设置表名_Java_Sql_Spring_Ibatis - Fatal编程技术网

Java iBATIS2.0动态设置表名

Java iBATIS2.0动态设置表名,java,sql,spring,ibatis,Java,Sql,Spring,Ibatis,我想在Ibatis select标记中动态设置表名 <select id="queryGetTopSongCount" parameterClass="java.lang.String" resultClass="java.lang.Integer"> SELECT count(0) FROM #toptable# </select> 问题似乎在于双引号。如何在没有双引号的情况下设置字符串参数?我们需要用美元符号$toptable将参数

我想在Ibatis select标记中动态设置表名

<select id="queryGetTopSongCount" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    SELECT
    count(0)
    FROM 
    #toptable#
</select>

问题似乎在于双引号。如何在没有双引号的情况下设置字符串参数?

我们需要用美元符号$toptable将参数括起来,而不是用哈希值#toptable#括起来$

<select id="queryGetTopSongCount" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    SELECT
    count(0)
    FROM 
    $toptable$
</select>

挑选
计数(0)
从…起
$toptable$

@Hasan Jamshaid已经展示了解决方案

下面这个也可以

<select id="queryGetTopSongCount" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    SELECT
    count(0)
    FROM 
    ${toptable}
</select>

挑选
计数(0)
从…起
${toptable}

你能解释一下你从哪里得到这个吗?因为阅读(旧的)文档并不能给我答案:对于#和#之间的差异根本没有明确/明确的解释$
<select id="queryGetTopSongCount" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    SELECT
    count(0)
    FROM 
    $toptable$
</select>
<select id="queryGetTopSongCount" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    SELECT
    count(0)
    FROM 
    ${toptable}
</select>