关于mybatis(insert插入)返回主键的问题

近来使用ssm框架中的mybatis遇到返回主键的问题,在使用mybatis的过程中遇到各种问题,在此发帖持续更新,在此发帖的原因一来是是为了方便以后回顾,二来是为了给遇到同样问题的同学们一个提示,废话不多说了 开始正题。

首先来看一下控制台提示的错误信息:

错误一:

Caused by: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object.

这句错误信息提示是说: 获得的关键参数是由参数对象产生的,说到这里可能有些同学已经知道解决方法了(不明白的同学继续)

错误二:

org.apache.ibatis.binding.BindingException: Parameter 'CR_ID' not found.

这句话的意思是说:定义的参数 ‘CR_ID’没有找到

mapper.xml 文件配置


    <insert id="addCustomerReceive" keyProperty="CR_ID" useGeneratedKeys="true">
   
    </insert>

上述的mapper是错误的配置,一经运行就会抛上述的两个异常,耽误了大半天的时间,在网上查找各种资料 写法都相同 要么说‘CR_ID’ 没有setter,getter 访问器,要没说加上keyColumn=" "  等等这都不是重要的病因,最终没有找到错误原因,看了二十七杯奶茶的博客突然明白了,

回顾错误信息一提示参数是由参数对象产生的,立马去查看Controller 方法传递的参数,恍然大悟 原来传递的是一个对象并不是一个字段或者一个map的载体,所以找不到CR_ID,一切原因终归粗心大意

正确的 mapper.xml 把keyProperty=" 对象.CR_ID "

文件配置:

<insert id="addCustomerReceive" keyProperty="对象.CR_ID" useGeneratedKeys="true">
   
 </insert>



 

猜你喜欢

转载自blog.csdn.net/nicholas_long/article/details/78908500
今日推荐