使用mybatis时,为了操作两个表,后表是以前表主键作为外键的,因此为了在前表插入时同时插入后表,此时需要前表操作完毕后返回主键的值,因此就有了以下
<!-- 增加一个学生 此处采用返回创建主键的值-->
<insert id="insertOne" parameterType="com.Mapper.student" useGeneratedKeys="true" keyProperty="stuId" >
insert into student(stuName,stuSex,stuGrade,stuProfession,stuClass) values(#{stuName},#{stuSex},#{stuGrade},#{stuProfession},#{stuClass});
</insert>
useGeneratedKeys=“true”
keyProperty=“stuId” //主键属性
添加这两个属性后就可以实现
如何获取呢?
首先错误的写法
int i = mapper.insert([class] className);
此时并不会获得主键的值只会获得0或1 标识成功或失败
正确写法
int i = className.get[主键名]);
因为mybatis将主键装入到传过来的参数类中。