hhlux 2009-03-26 15:15 采纳率: 100%
浏览 419
已采纳

iBatis报错

异常如下:
org.xml.sax.SAXParseException: The content of element type "resultMap" must match "(result*,discriminator?)".

源码如下:
[code="xml"]

<typeAlias alias="User" type="jp.co.grids.mda.entity.user.User"/>
<typeAlias alias="Department" type="jp.co.grids.mda.entity.user.Department"/>

<resultMap id="DepartmentResult" class="Department">
    <result property="id" column="ID" />
    <result property="depName" column="DEP_NAME" />
    <result property="users" column="ID" select="getUsers" />   
</resultMap>


<select id="getUsers" resultClass="User">   
    select * from users where id=#value#   
</select> 


<select id="Department.select" parameterClass="java.lang.Long" resultMap="DepartmentResult">
    select id, dep_name
    from department 
</select>


[/code]

框架是Spring2.5 + struts2 + ibatis2.3。 百思不得其解,语法应该没有错啊。
[b]问题补充:[/b]
yourgame 你贴的代码里并没有resultMap使用。

  • 写回答

1条回答 默认 最新

  • zhoujuan520 2009-03-26 15:23
    关注

    我贴一个给你参考 源代码工程可以下载
    地址 [url]http://yourgame.iteye.com/blog/252853 [/url]

    [code="xml"]
    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE sqlMap

    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

    <typeAlias alias="subject" type="com.lhq.prj.bms.po.Subject" />
    <typeAlias alias="category" type="com.lhq.prj.bms.po.Category" />
    <typeAlias alias="page" type="com.lhq.prj.bms.core.Page" />
    
    <parameterMap class="category" id="pm_category_without_id">
        <parameter property="categoryName" javaType="string" jdbcType="VARCHAR" />
        <parameter property="subjectId" javaType="integer" jdbcType="NUMBER" />
        <parameter property="subjectName" javaType="string" jdbcType="VARCHAR" />
        <parameter property="remark" javaType="string" jdbcType="VARCHAR" />
    </parameterMap>
    <sql id="byCategoryIdCondition">
        <![CDATA[
           categoryId = #categoryId:NUMBER#
        ]]>
    </sql>
    
    <insert id="save" parameterMap="pm_category_without_id">
        <![CDATA[
            INSERT INTO t_category 
                        (categoryName,subjectId,subjectName,remark) 
                 VALUES (?,?,?,?)
        ]]>
        <selectKey resultClass="int">
            <![CDATA[
                SELECT @@IDENTITY AS ID
            ]]>
        </selectKey>
    </insert>
    
    <delete id="deleteById" parameterClass="integer">
        <![CDATA[
            delete t_category
        ]]>
        <dynamic prepend="WHERE">
            <include refid="byCategoryIdCondition" />
        </dynamic>
    </delete>
    
    <select id="findAll" resultClass="category">
        <![CDATA[
            SELECT * FROM t_category
        ]]>
    </select>
    
    <update id="update" parameterClass="category">
        <![CDATA[
            UPDATE t_category
        ]]>
        <dynamic prepend="SET">
            <isNotNull property="categoryName" prepend=",">
                <![CDATA[
                    categoryName = #categoryName:VARCHAR#
                ]]>
            </isNotNull>
            <isNotNull property="subjectId" prepend=",">
                <![CDATA[
                    subjectId = #subjectId:NUMBER#
                ]]>
            </isNotNull>
            <isNotNull property="subjectName" prepend=",">
                <![CDATA[
                    subjectName = #subjectName:VARCHAR#
                ]]>
            </isNotNull>
            <isNotNull property="remark" prepend=",">
                <![CDATA[
                    remark = #remark:VARCHAR#
                ]]>
            </isNotNull>
        </dynamic>
        <dynamic prepend="WHERE">
            <include refid="byCategoryIdCondition" />
        </dynamic>
    </update>
    
    <sql id="findCategoryByPageCondition">
        <isNotEmpty property="conditions">
            <iterate property="conditions" open="(" close=")" conjunction="OR">
                <![CDATA[
                    upper(categoryName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'
                    OR upper(subjectName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%'
                    OR upper(remark) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%' 
                ]]>
            </iterate>
        </isNotEmpty>
    </sql>
    
    <select id="findByPage" parameterClass="page" resultClass="category">
        <![CDATA[
            SELECT TOP $limit$ * FROM t_category 
                    WHERE (categoryId >= (SELECT MAX(categoryId) FROM (SELECT TOP $start$ categoryId FROM t_category 
        ]]>
        <dynamic prepend="WHERE">
            <include refid="findCategoryByPageCondition" />
        </dynamic>
        <![CDATA[
            ORDER BY categoryId ) AS T)) 
        ]]>
        <dynamic prepend="AND">
            <include refid="findCategoryByPageCondition" />
        </dynamic>
        <![CDATA[
            ORDER BY categoryId
        ]]>
    </select>
    
    <select id="findByCount" parameterClass="page" resultClass="int">
        <![CDATA[
            SELECT COUNT(*) FROM t_category 
        ]]>
        <dynamic prepend="WHERE">
            <include refid="findCategoryByPageCondition" />
        </dynamic>
    </select>
    
    <select id="findCategoryBySubject" parameterClass="subject" resultClass="category">
        <![CDATA[
            SELECT * FROM t_category 
        ]]>
        <dynamic prepend="WHERE">
            <isNotNull property="subjectId" prepend="OR">
                <![CDATA[
                    subjectId = #subjectId:NUMBER#
                ]]>
            </isNotNull>
            <isNotNull property="subjectName" prepend="OR">
                <![CDATA[
                    subjectName like '%' +  #subjectName:VARCHAR# + '%'
                ]]>
            </isNotNull>
        </dynamic>
    </select>
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多