使用@SelectKey:用于查询刚刚保存好的数据id值

Mybatis的一些注意事项_赋值

  • statement:是要运行的SQL语句,它的返回值通过resultType来指定 返回的类型
  • before表示查询语句statement运行的时机
  • keyProperty表示查询结果赋值给代码中的哪个对象的属性,keyColumn表示将查询结果赋值给数据库表中哪一列
  • keyProperty和keyColumn都不是必需的,有没有都可以
  • before=true,插入之前进行查询,可以将查询结果赋给keyProperty和keyColumn,赋给keyColumn相当于更改数据库
  • befaore=false,先插入,再查询,这时只能将结果赋给keyProperty
  • 赋值给keyProperty用来“读”数据库,赋值给keyColumn用来写数据库
  • selectKey的两大作用:1、生成主键;2、获取刚刚插入数据的主键。

总结​:使用selectKey,并且使用MySQL的last_insert_id()函数时,before必为false,也就是说必须先插入然后执行last_insert_id()才能获得刚刚插入数据的ID。

获取保存的id值​:想要获取到刚刚保存好的设备id,那么需要通过对象调用did的方法获取

Mybatis的一些注意事项_赋值_02

做一下对比:可以发现没有调用保存时did为null,调用了保存的方法后在查询这个对象的信息发现did有值了这就是@SelectKey的用法

Mybatis的一些注意事项_主键_03