需求:
插入数据时不插入主键,让主键自增,但是需要知道插入的数据主键是啥。
注意:
insert方法的返回值,表示成功添加的条数,和主键ID无关
实现:添加注解 @Options()
示例
@Insert("insert into table_name (num,grade,name,age,sex) values(#{num},#{grade},#{name},#{age},#{sex}")
@Options(useGeneratedKeys = true, keyProperty = "studentId", keyColumn = "student_id")
void insert(Student student);
-
useGeneratedKeys
使用生成的密钥,润色一下就是使用数据库中生成的主键(这里表中主键只能是student_id) -
keyProperty
关键属性,即代码中与表对应的Bean的属性名(实体类的属性)。 -
keyColumn
关键列,即数据库表中主键的字段名 student_id
增加这两个参数,它会将主键id映射到你的对象中的studentId属性中去
获取ID
insert方法执行完毕后,实体类的对象student的studentId就会被赋值为 插入后主键的值
如果想获取通过 student.getStudentId()
(改成自己的实体类的get方法) 就可以。