这个为什么没有设置参数类型也可以自动注入

这个为什么没有设置参数类型也可以自动注入

<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
<setting name="useGeneratedKeys" value="true" />
自增主键不是在每个sql语句可以设置吗,为什么要在mybatis里配置

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,在MyBatis中,允许设置名称为“useGeneratedKeys”参数存在3个位置:

1、在settings元素中设置useGeneratedKeys参数,也就是如下的useGeneratedKeys

http://img1.sycdn.imooc.com//climg/5e7c26a109266e9d05200099.jpg

对于支持自动生成记录主键的数据库,此时设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID。实际上,在settings元素中设置useGeneratedKeys是一个全局参数,但是只会对接口映射器产生影响,对xml映射器不起效。

2、在xml映射器中设置useGeneratedKeys参数,例如:

http://img1.sycdn.imooc.com//climg/5e7c26db0913284708700103.jpg

xml映射器中配置的useGeneratedKeys参数只会对xml映射器产生影响,且在settings元素中设置的全局useGeneratedKeys参数值对于xml映射器不产生任何作用。

3、在接口映射器中设置useGeneratedKeys参数,例如:

http://img1.sycdn.imooc.com//climg/5e7c26f809289ab208830089.jpg

在接口映射器中设置的useGeneratedKeys参数会覆盖在<settings>元素中设置的对应参数值。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 慕斯卡3102410 提问者 #1
    老师这里为什么不用指定paramtype
    2020-03-26 12:02:57
  • 好帮手慕阿满 回复 提问者 慕斯卡3102410 #2
    同学你好 ,useGeneratedKeys是用来获取数据库的自增主键值,也就是说主键值必须是int类型。不需要指定paramtype。祝:学习愉快~
    2020-03-26 14:59:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师