插入一条记录的时候需要用到这条记录的自增主键值
本来想的可以插入后在查询这条记录来获得但是太麻烦。
通过百度查询后可以通过修改mapper.xml来解决。
<insert id="insertSelective" parameterType="com.jtexplorer.entity.Company" useGeneratedKeys="true" keyProperty="id">
其中:
useGeneratedKeys=”true” 表明自增主键值
keyProperty=”id” 用来标识主键colum是’id’。
通过这种方法来解决。
本以为这样修改完后返回的就是主键值(return companyMapper.insertSelective(company)),但是测试得到返回的仍然是条数。
查资料得到,无论什么情况下,interface接口中的int返回的都是影响的条数(可以用来识别成功插入与否),
而返回的自增长主键id值,Mybatis利用反射机制,自动帮我们回填到了Model实体类当中了。我们可以利用model.getId()来获取id值。
(当然,再insert之前,我们用getId()来获取是返回null的)
例:
public int creatCompany(Company company){
companyMapper.insertSelective(company);
return companyMapper.insertSelective(company);//错误,返回的仍然是条数
return company.getId(); //正确,返回的是主键
}
{{ cmt.username }}
{{ cmt.content }}
{{ cmt.commentDate | formatDate('YYYY.MM.DD hh:mm') }}