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