Attribute "resultType" must be declared for element type "insert"或"update"

今天写代码的时候,写mybatis的update语句和insert语句,写完之后,开jetty,但是很久过去,jetty卡卡住不动,

  1. [logistics] 2016-02-01 16:40:54 577 main com.alibaba.druid.filter.logging.Log4jFilter.connectionLog(Log4jFilter.java:132)

  2. [DEBUG] {conn-10010} setAutoCommit false

这个问题一般是xmL中有错误导致的,但是查看了很久,都没与发现,知道jetty运行超时,报错。看到报错日志。如下图:

这个报错日志中说Attribute "resultType" must be declared for element type "insert",还有一个报错信息是Attribute "resultType" must be declared for element type "update"

当时一直没有找到那里有问题,一直以为问题是我写insert和update语句是没有写resultType,后来发现,问题恰恰出在此处。

因为在insert和update语句中是没有resultType的,报错的信息不是说没有写resultType,而是说要在mybatis的文件中声明resultType之后,才可以使用resultType.

在xml文件的开头一般有两行代码:


  1. DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"

将http://mybatis.org/dtd/mybatis-3-mapper.dtd复制到浏览器中,会自动下载dtd文件,打开后,搜索update和insert和select,会发现之间的区别:

select的声明如下:


  1. ATTLIST select
  2. id CDATA #REQUIRED
  3. parameterMap CDATA #IMPLIED
  4. parameterType CDATA #IMPLIED
  5. resultMap CDATA #IMPLIED
  6. resultType CDATA #IMPLIED
  7. resultSetType (FORWARD_ONLY | SCROLL_INSENSITIVE | SCROLL_SENSITIVE) #IMPLIED
  8. statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
  9. fetchSize CDATA #IMPLIED
  10. timeout CDATA #IMPLIED
  11. flushCache (true|false) #IMPLIED
  12. useCache (true|false) #IMPLIED
  13. databaseId CDATA #IMPLIED
  14. lang CDATA #IMPLIED
  15. resultOrdered (true|false) #IMPLIED
  16. resultSets CDATA #IMPLIED
  17.  

insert的声明如下:


  1. ATTLIST insert
  2. id CDATA #REQUIRED
  3. parameterMap CDATA #IMPLIED
  4. parameterType CDATA #IMPLIED
  5. timeout CDATA #IMPLIED
  6. flushCache (true|false) #IMPLIED
  7. statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
  8. keyProperty CDATA #IMPLIED
  9. useGeneratedKeys (true|false) #IMPLIED
  10. keyColumn CDATA #IMPLIED
  11. databaseId CDATA #IMPLIED
  12. lang CDATA #IMPLIED
  13.  

update的声明如下:


  1. ATTLIST update
  2. id CDATA #REQUIRED
  3. parameterMap CDATA #IMPLIED
  4. parameterType CDATA #IMPLIED
  5. timeout CDATA #IMPLIED
  6. flushCache (true|false) #IMPLIED
  7. statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
  8. keyProperty CDATA #IMPLIED
  9. useGeneratedKeys (true|false) #IMPLIED
  10. keyColumn CDATA #IMPLIED
  11. databaseId CDATA #IMPLIED
  12. lang CDATA #IMPLIED
  13.  

可以看出select声明中有resultType,而update和insert中没有resultType

错误在此。

Attribute "resultType" must be declared for element type "insert"或"update"的更多相关文章

  1. Attribute "resultType" must be declared for element type "insert".

    这是mybatis插入数据库之后出现的问题,至于为什么出现这个问题,是因为插入的时候你照抄了查询的语句,插入的时候只有id属性和parameterType属性,并没有“resultType”属性,要注 ...

  2. Attribute "resultType" must be declared for element type "update" or "insert"

    仔细查看错误如图所示: 解决错误就是把resultType去掉,因为在insert和update语句中是没有返回值的.小坑小坑 转自:https://blog.csdn.net/u013144287/ ...

  3. Multiple annotations found at this line: - The content of element type "mapper" must match "EMPTY". - Attribute "namespace" must be declared for element type "mapper".

    今天在mybatis的mapper映射配置文件中遇到了这样的问题,困扰了我3个小时: Multiple annotations found at this line: - The content of ...

  4. Attribute "not-null" must be declared for element type "property"解决办法

    Attribute "not-null" must be declared for element type "property"解决办法 在hiberante ...

  5. Attribute "resource" must be declared for element type "mapper".

    今天在玩mybatis的时候,遇到这个奇葩问题. 最后发现,原因是 dtd文件配置错误了.错把Mapper的直接copy过来 把DOCTYPE mapper改成configuration,Mapper ...

  6. Attribute name "aphmodel" associated with an element type "mxg" must be followed by the ' = ' charac

    1.错误描述 org.apache.batik.transcoder.TranscoderException: null Enclosed Exception: Attribute name &quo ...

  7. 【resultType】Mybatis种insert或update的resultType问题

    Attribute "resultType" must be declared for element type "insert"或"update&q ...

  8. Open quote is expected for attribute "property" associated with an element type "result".错误

    java  Mybatis 框架下的项目 报   Open quote is expected for attribute "property" associated with a ...

  9. [Fatal Error] :3:13: Open quote is expected for attribute "{1}" associated with an element type "id".

    用DOM解析XML时出现了如下错误: [Fatal Error] :3:13: Open quote is expected for attribute "{1}" associa ...

随机推荐

  1. 索引堆(Index Heap)

    首先我们先来看一个由普通数组构建的普通堆. 然后我们通过前面的方法对它进行堆化(heapify),将其构建为最大堆. 结果是这样的: 对于我们所关心的这个数组而言,数组中的元素位置发生了改变.正是因为 ...

  2. springboot 学习之路 1(简单入门)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  3. 【软件需求工程与建模 - 小组项目】第6周 - 成果展示2 - 软件需求规格说明书V4.3

    成果展示2 - 软件需求规格说明书V4.3

  4. 银盒子智慧餐厅硬件尺寸规格&推荐机型

  5. JAVA多线程的问题以及处理(一)【转】

    多线程编程为程序开发带来了很多的方便,但是也带来了一些问题,这些问题是在程序开发过程中必须进行处理的问题. 这些问题的核心是,如果多个线程同时访问一个资源,例如变量.文件等,时如何保证访问安全的问题. ...

  6. html常见标签和属性

    主体 body中常见属性 属性 表格 列表 表单 其他 input字段属性 form字段属性

  7. python轻量级数据存储

    python为开发者提供了一个轻量级的数据存储方式shelve,对于一些轻量数据,使用shelve是个比较不错的方式.对于shelve,可以看成是一个字典,它将数据以文件的形式存在本地.下面介绍具体用 ...

  8. SQL的日期转换

    日期转会计期 SUBSTRING(CONVERT(VARCHAR,getdate(), 20), 1, 7)   2015-06 SUBSTRING(CONVERT(VARCHAR,DATEADD(m ...

  9. c/c++ 标准容器 vector的内存空间是如何自动增长的

    c/c++ 标准容器 vector的内存空间是如何自动增长的 vector,string,deque的内存存储机制:在一个连续的内存空间存储,所以才支持下标操作. vector的课题:由于容器的大小是 ...

  10. Linux下编译安装redis

    redis是开源,BSD许可,高级的key-value存储系统,可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务. redis和memcached相比的独特之处: 1: redi ...