@Options注解和@Selectkey注解

在中是为了解决数据时不支持主键自动生成的问题 , 他可以很随意的设置生成主键的方式 。
是要运行的SQL语句 , 它的返回值通过来指定
表示查询语句运行的时机
表示查询结果赋值给代码中的哪个对象 , 表示将查询结果赋值给数据库表中哪一列
和都不是必需的 , 有没有都可以
=true , 插入之前进行查询 , 可以将查询结果赋给和 , 赋给相当于更改数据库
=false , 先插入 , 再查询 , 这时只能将结果赋给
赋值给用来“读”数据库 , 赋值给用来写数据库
的两大作用:1、生成主键;2、获取刚刚插入数据的主键 。
使用 , 并且使用MySQL的()函数时 , 必为false , 也就是说必须先插入然后执行()才能获得刚刚插入数据的ID
这个注解的功能与 标签完全一致 , 用在已经被 @ 或 @ 或 @ 或 @ 注解了的方法上 。若在未被上述四个注解的方法上作 @ 注解则视为无效 。如果你指定了 @ 注解 , 那么就会忽略掉由 @ 注解所设置的生成主键或设置()属性 。
属性有:
填入将会被执行的 SQL 字符串数组 , 
填入将会被更新的参数对象的属性的值 , 
填入 true 或 false 以指明 SQL 语句应被在插入语句的之前还是之后执行 。
填入的 Java 类型

【@Options注解和@Selectkey注解】@RequestMapping("/insert")public int insertUserData(UserDTO dto){dto.setUserName("范德萨");dto.setUserStatus(UserEnum.NORMAL);int i = productMapper.insetUser(dto);System.out.println(dto.getUserId());return i;}
两种都能获取到新插入的主键id