使用@SelectKey:用于查询刚刚保存好的数据id值
- 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的方法获取
做一下对比:可以发现没有调用保存时did为null,调用了保存的方法后在查询这个对象的信息发现did有值了这就是@SelectKey的用法