0

我在我的应用程序中使用 mybatis。我在我的选择元素中使用绑定标签。这是我的映射器代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="myapp.model.MyDAO">
        <select id="mySelect" parameterType="myapp.model.MyParameterBean" resultType="hashmap">
        <bind name="SL" value="_parameter.getSelectList()" />
        <bind name="TNS" value="_parameter.getTableNameSuffix()" />
        SELECT NAME
        #{SL}
        FROM MYTABLE_#{TNS}
        </select>
    </mapper>

当我尝试编译我的应用程序时,我得到一个 SAXParseException。详细的错误信息是:

解析映射资源失败:'file [C:\myapp\model\myMapper.xml]';嵌套异常是 org.apache.ibatis.builder.BuilderException:创建文档实例时出错。原因:org.xml.sax.SAXParseException:必须声明元素类型“绑定”。你对这种行为有任何想法吗?

我正在使用spring-mvc。对于 spring-mybatis 集成,我包含了 mybatis-spring-1.1.0.jar。

大家好!

4

2 回答 2

0

在我的情况下完全是动态的。选择列表或表名后缀取决于参数。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="myapp.model.MyDAO">
<select id="mySelect" parameterType="myapp.model.MyParameterBean" resultType="hashmap">
    <bind name="SL" value="_parameter.getSelectList()" />
    <bind name="TNS" value="_parameter.getTableNameSuffix()" />
    SELECT NAME
    #{SL}
    FROM MYTABLE_#{TNS}
</select>
</mapper>
于 2014-04-14T10:26:24.823 回答
-1

<sql><include>标签 的例子

<sql id="columns">
   SURNAME,ADDRESS
</sql>

<select id="mySelect" resultType="hashmap">
    SELECT NAME,
    <include refid="columns">
    FROM MYTABLE
</select>
于 2014-04-14T10:06:43.857 回答