mybatis自定义sql insert报错:selectKey不起作用、以及报错找不到getter方法

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

在mybatis的xml配置文件中,如果用自定义insert语句,需要注意如下两点:

1)如果要使用selectKey提前自动生成字段ID,就在mapper interface方法定义中,如果使用@param。就需要在使用insert语句中,通过@param指定的名称来方位bean的属性;如果不使用@param就可以省去名称。

下面是使用@param的写法(含mapper interface和xml):

在这里插入图片描述在这里插入图片描述
下面是不使用@param的写法(含mapper interface和xml):

在这里插入图片描述

就这个例子来说,不使用@param会更简洁。

2)使用selectKey获取多列数据时,千万不要在keyProperty中的列之间加空格(一般处于编码习惯,都会自然而然的加一个空格)。如下图:

在这里插入图片描述
否则,会报错如下:
ERRORServlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No setter found for the keyProperty ’ timestamp’ in com.huaguang.observ.model.ch.SpanSnapshot.] with root cause
org.apache.ibatis.executor.ExecutorException: No setter found for the keyProperty ’ timestamp’ in com.huaguang.observ.model.ch.SpanSnapshot.
at org.apache.ibatis.executor.keygen.SelectKeyGenerator.setValue(SelectKeyGenerator.java:117)
在这里插入图片描述
正确的写法,去掉空格,如下图:
在这里插入图片描述
然后代码就能够正常运行了。

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5 H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享! 阅读详情

相关推荐

VS Code + Codex 在 WSL 中使用的正确姿势

Codex 登录只能在本地完成。文件仍可通过 UNC 路径访问 WSL → 本地 Codex 就能照常工作。避免在 WSL 内重复安装/登录 Codex 扩展。

yangguangwuyue的博客 9490

Mybatis非自增主键使用useGeneratedKeys参数失效

Mybatis非自增主键使用useGeneratedKeys参数失效

l_oldhao的博客 1918

微信小程序 - 解决web-view嵌套H5网页白屏问题,将h5网页嵌套在webview页面出现无法加载一片空白,详解微信小程序<web-view>页面跳转出现白屏情况(无论本地还是线上H5都能解决)

微信小程序解决web-view打开网页在手机上出现白屏的问题,小程序web-view嵌套H5项目白屏问题分析及解决,使用web-view组件加载H5网页链接后白屏情况,小程序嵌套的h5网页中跳转页面时也有可能出现白屏问题,嵌套webview页面时,出现白屏,WebView 加载不出网页,微信小程序<web-view>页面跳转出现白屏解决方法,解决WebView白屏空白,H5内嵌第三方小程序打开白屏,微信小程序嵌入h5页面加载空白,微信小程序web-view跳转h5白屏,解决微信小程序web-view打开网页

🏆 前端领域优质创作者 1万+

MybatisselectKey>失效问题踩坑记录

selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的实体类的主键里面, keyProperty对应的实体类中的主键的属性名,这里是 CheckGroup 中的id,因为它跟数据库的主键对应 order AFTER 表示 SELECT LAST_INSERT_ID() 在insert执行之后执行,多用与自增主键, BEFORE 表示 SELECTLAST_INSERT_ID() 在insert执行之前执行,这样的话就拿不到主键了,这种适合那种主键不是自增的类型 res.

m0_46205920的博客 3407

Mybatis SelectKey赋值未生效

SelectKey未成功赋值

wt_better的博客 1555

mybatis——insertselectKey

在mapper.xml文件中  <insert id="insertUser" parameterType="User">     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">         select count(*) from user  

苏云南雁的博客 1745

Mybaits使用selectKey后提示无效字符的处理方法

<insert id="insert" parameterType="com.hismax.apptPlatform.entity.table.Userinfo"> <selectKey order="BEFORE" resultType="long" keyProperty="userId"> SELECT seq_userinfo.nex

dl348的博客 1747

springboot整合mybatis出现问题

1.调用以下sql报错:There is no getter for property named ‘*’ in ‘class java.lang.String’ 以上图片为改正后,原错误为 <if test="orgCode != null"> orgCode为传进来的参数名称,发生错误原因见收藏 2.一个insert标签执行多条insert语句 allowMultiQueries...

小流 312

Mybatis异常:不到getter

异常名 no getter for username in class com.xxx.User 原因1 Javabean 中没有对应字段的get方法 原因2 数据库字段名和属性名不一致 原因3 sql语句出错 Mybatis出错大部分语音是映射文件的问题

m0_51105681的博客 1710

selectKey标签遇到的问题

insert中实体类做参数,使用selectKey 时遇到的一些坑 传递参数时用了@Param注解,导致插入后返回的自增主键为null,如下: 然后将@Param注解直接去掉使用下面的方式 自增主键成功映射到了实体类对象中 ...

WDC的博客 1797

MyBatis insert语句selectKey标签和返回主键

一、简要概述 keyProperty:对应的domain 对象中需要被赋值的属性,一般是主键 resultType:表示的是返回主键的类型 order:如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素 注意:SelectKey需要注意order属性,像MySQL一类支持自动增长类型的数据库中,order需要设置为after才会取到正确的值,像Oracle这样取序列的情况,需要设置为b

xiaoleilei666的博客 1752

org.apache.ibatis.executor.ExecutorException

org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the

m0_61931988的博客 1374

mybatis学习 --- insertselectKey(插入后返回数据库自动生成的id)

前言 insert 插入标签并不难 只是为了注意一下,insert还有一些细节 目的 如果你的数据库支持自动生成主键的字段(比如 MySQLSQL Server),那么你插入时没有设置id的值,返回是如何获取插成功工完整的一行信息呢? 如果只判断成功,并把之前的值拿来使用,有缺少一个id的值,那么你还必须查询该值 方法一:使用selectKey 标签属性 看一下官网是怎么说的 官网说可以用它来生成主键 返回自动生成的ID LAST_INSERT_ID() 函数在mysql中是返回最后一个插入

赵成默 2161

@SelectKey在springboot整合Mybatis时总是返回1

问题: 我们想在插入一条数据后同时能够返回这条数据在表中的id,Mybatis提供了@SelectKey注解。 t_user 为数据表,主键自增 SelectKey的四个属性: keyColumn:插入数据以后,要返回的内容在数据表t_user中对应的字段名称 keyProperty:指定返回的id映射到bean中的哪个属性(这里是user中的id), before=false:表示这个sele...

qq_38904904的博客 1176

Mybatis不到参数错误:There is no getter for property named 'categoryId' in 'class java.lang.Integer'。...

Mybatis不到参数错误:There is no getter for property named 'categoryId' in 'class java.lang.Integer'。错误List<Post> listPage(Integer categoryId);在测试时报错:There is no getter for property named 'categoryI...

weixin_30740295的博客 400

Mybatis报错:There is no getter for property named 'xxxx' in 'class xxxx之解决办法

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘createdData’ in 'class com.nowcoder.model.News’ ...

weixin_42870497的博客 1万+

mybatis学习之路----insert主键返回 selectKey使用

点滴记载,点滴进步,愿自己更上一层楼。

小菜鸟的专栏 5万+

mybatis selectKey 赋值未生效,为什么?

使用Mybatis Insert User表,使用selectKey获取LAST_INSERT_ID() ,赋值给user的id属性,发现id属性值未被set进去,user.getId() 获取的结果等于0,会话的LAST_INSERT_ID() 已经到远远超过0了,返回0明显是不对的。属性值获取到的是0,要么是SELECT LAST_INSERT_ID() sql未执行,使用了id long类型的默认值0,要么是执行了但获取到的值是0,或者是Mybatis set对象id属性值的时候没set进去。

1209

MyBaits异常解决:There is no getter for property named ‘ID‘ in ‘class ***‘

没有到ID的getter方法,后面发现是因为在我们的mybatis.xml中是这样配置的 用了#{}的方式,但是我们的student类里面是大写的ID 因此执行sql的时候便会报错不到getter方法,我们把这改为小写的id,或者把Insert语句里面改为大写的ID即可解决! ...

a1272159758的博客 8977

Mybatis单个参数报错: There is no getter for property named

总结:mybatis传单个String类型,可以不用@param注解,前提是xml中不含有条件表达式(when,if..标签中没有引用到该参数)1.首先看一下方法,是一个简单的查询,参数只有一个String,印象中dao层方法只有一个string的时候,3.如果mybatis的if标签去掉,就可以正常运行,如果要使用条件表达式那就要在dao层加param标签。这里注意一下,错误的地方是用红框圈起来的哪里,也是就条件表达式,并非where语句。2.但是报错了,提示该字段没有get方法

z69183787的专栏 704

mysqlMybatis报错:There is no getter for property named ‘xxx‘ in ‘class xxx 的解决办法

Mybatis报错:There is no getter for property named 'xxx' in 'class xxx 的解决办法

beiback的博客 5361

使用Mybatis查询插入数据(insertSelect)无作用

客户端操作数据库的时候,(增删改查)无作用,可能是mybatis的错误,仔细查看这些方面,可能会有发现。

咩嘢的博客 4192
上一篇: DDD 实战 (12- 终篇):DDD 下微服务的“分分合合”及一个倡议
下一篇: Deepseek 让中国软件像哪吒一样渡劫
深清秋
博客等级 码龄25年 88粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值