【resultType】Mybatis种insert或update的resultType问题
Attribute "resultType" must be declared for element type "insert"或"update"
insert报错
这个报错日志中说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文件的开头一般有两行代码:
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的声明如下:
ATTLIST selectid CDATA #REQUIREDparameterMap CDATA #IMPLIEDparameterType CDATA #IMPLIEDresultMap CDATA #IMPLIEDresultType CDATA #IMPLIEDresultSetType (FORWARD_ONLY | SCROLL_INSENSITIVE | SCROLL_SENSITIVE) #IMPLIEDstatementType (STATEMENT|PREPARED|CALLABLE) #IMPLIEDfetchSize CDATA #IMPLIEDtimeout CDATA #IMPLIEDflushCache (true|false) #IMPLIEDuseCache (true|false) #IMPLIEDdatabaseId CDATA #IMPLIEDlang CDATA #IMPLIEDresultOrdered (true|false) #IMPLIEDresultSets CDATA #IMPLIED
insert的声明如下:
ATTLIST insertid CDATA #REQUIREDparameterMap CDATA #IMPLIEDparameterType CDATA #IMPLIEDtimeout CDATA #IMPLIEDflushCache (true|false) #IMPLIEDstatementType (STATEMENT|PREPARED|CALLABLE) #IMPLIEDkeyProperty CDATA #IMPLIEDuseGeneratedKeys (true|false) #IMPLIEDkeyColumn CDATA #IMPLIEDdatabaseId CDATA #IMPLIEDlang CDATA #IMPLIED
update的声明如下:
ATTLIST updateid CDATA #REQUIREDparameterMap CDATA #IMPLIEDparameterType CDATA #IMPLIEDtimeout CDATA #IMPLIEDflushCache (true|false) #IMPLIEDstatementType (STATEMENT|PREPARED|CALLABLE) #IMPLIEDkeyProperty CDATA #IMPLIEDuseGeneratedKeys (true|false) #IMPLIEDkeyColumn CDATA #IMPLIEDdatabaseId CDATA #IMPLIEDlang CDATA #IMPLIED
可以看出select声明中有resultType,而update和insert中没有resultType
错误在此。
【resultType】Mybatis种insert或update的resultType问题的更多相关文章
- mybatis动态insert,update
1. 动态update UPDATE ui.user_question_section_xref <set> reviewer = #{0}, score = #{1} , last_up ...
- 数据库--MyBatis的(insert,update,delete)三种批量操作
转自:http://blog.csdn.net/starywx/article/details/23268465 前段时间由于项目赶期没顾上开发过程中的性能问题,现对部分代码进行优化的过程中发现在数据 ...
- Attribute "resultType" must be declared for element type "insert"或"update"
Attribute "resultType" must be declared for element type "insert"或"update&q ...
- mybatis insert、update 、delete默认返回值解释与如何设置返回表主键
在使用mybatis做持久层时,insert.update.delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数: 那么如果想要得到被操作记录的主键,可以通过下面的配置方式获取 ...
- 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介 ...
- 深入浅出Mybatis系列七-mapper映射文件配置之insert、update、delete
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(六)---objectFactory.p ...
- Mybatis执行sql(insert、update、delete)返回值问题
数据库:Mysql 在使用mybatis的过程中对执行sql的返回值产生疑问,顺手记录一下. 结论: insert: 插入n条记录,返回影响行数n.(n>=1,n为0时实际为插入失败) up ...
- Mybatis之执行insert、update和delete操作时自动提交
单独使用Mybaits,而没有集成Spring的话,执行insert.update和delete操作是不会自动提交的,即执行语句后不会在数据库有对应的数据变化. 解决这样的方法就是打开自动提交开关,在 ...
- mybatis insert转update,duplicate关键字的使用示例,及返回情况说明
主键存在时又insert转为update某个关键字段,示例如下,注意,如果这条数据曾经不存在,此时执行insert返回条目是1,如果已存在,执行update返回条目是2!!!<insert id ...
随机推荐
- html5闰年判断函数
<script> var year=2016; function runnian(year){ if (year%400==0) {return ...
- IO model
上节的问题: 协程:遇到IO操作就切换. 但什么时候切回去呢?怎么确定IO操作完了? 很多程序员可能会考虑使用“线程池”或“连接池”.“线程池”旨在减少创建和销毁线程的频率,其维持一定合理数量的线程, ...
- pyspider 示例
数据存放目录: C:\Users\Administrator\data 升级版(可加载文章内所有多层嵌套的图片标签) #!/usr/bin/env python # -*- encoding: utf ...
- 修改 File --> New 菜单内容
修改 File --> New 菜单内容 window --> Perspective --> Customize Perspective
- 富文本编辑器kindeditor插件
官网:http://kindeditor.net/doc.php 步骤
- sklearn异常检测demo
sklearn 异常检测demo代码走读 # 0基础学python,读代码学习python组件api import time import numpy as np import matplotlib ...
- DNN模型训练词向量原理
转自:https://blog.csdn.net/fendouaini/article/details/79821852 1 词向量 在NLP里,最细的粒度是词语,由词语再组成句子,段落,文章.所以处 ...
- Hive中如何快速的复制一张分区表(包括数据)
Hive中有时候会遇到复制表的需求,复制表指的是复制表结构和数据. 如果是针对非分区表,那很简单,可以使用CREATE TABLE new_table AS SELECT * FROM old_tab ...
- 【函数封装】javascript判断是否是微信浏览器
//判断是否是微信浏览器的函数 function isWeiXin(){ //window.navigator.userAgent属性包含了浏览器类型.版本.操作系统类型.浏览器引擎类型等信息,这个属 ...
- django 常用方法总结 < 手写分页-上传头像-redis缓存,排行 ...>
1.不使用自带模块<Paginator>的手写分页功能views.pydef post_list(request): page = request.GET.get('page', 1) # ...