Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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 Mybatis标记导致异常_Java_Bind_Saxparseexception - Fatal编程技术网

Java Mybatis标记导致异常

Java Mybatis标记导致异常,java,bind,saxparseexception,Java,Bind,Saxparseexception,我正在我的应用程序中使用mybatis。我正在select元素中使用bind标记。这是我的映射程序代码: <?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

我正在我的应用程序中使用mybatis。我正在select元素中使用bind标记。这是我的映射程序代码:

<?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。详细错误信息如下:

无法分析映射资源:“文件[C:\myapp\model\myMapper.xml]”;嵌套异常为org.apache.ibatis.builder.BuilderException:创建文档实例时出错。原因:org.xml.sax.SAXParseException:必须声明元素类型绑定。 你知道这件事吗

我正在使用SpringMVC。对于spring mybatis集成,我包括mybatis-spring-1.1.0.jar

大家好

和标记的示例


在我的例子中,所有都是完全动态的。选择列表或表名后缀取决于参数

<?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>

你想达到什么目标?在这个例子中,我看不出有任何理由使用bind?我知道,在这种情况下,我可以使用bind变量。我需要在select语句中插入整个自定义部分的机制。例如,我可能需要修改选择列表或表的名称,或者完全更改where条件;有用于此目的的和标记示例代码已更新!
<?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>