Mybatis 返回插入的主键
业务中,会遇到这样的问题,就是感觉返回的主键,插入作为其他表的外键。
那么问题来了,如何去实现,其实方法比较简单,这里就是重点记录下,会出现的误区。
用自动生成sql工具的话,加上下面这句话
<generatedKey column="id" sqlStatement="JDBC" identity="true" />
生成的sql文件就会带 useGeneratedKeys="true" keyProperty="travelId" 属性。
首先,sql文件里面的需要加上两个属性。
<insert id="insertSelective" parameterType="com.sun.dto.HTRAVEL" useGeneratedKeys="true" keyProperty="travelId" ></insert>
useGeneratedKeys="true" 表示给主键设置自增长
keyProperty="userId" 表示将自增长后的Id赋值给实体类中的userId字段。
parameterType="com.chenzhou.mybatis.User" 这个属性指向传递的参数实体类
然后接收的地方:
注意了,这里主键Id是不会在,返回值里面的。
而是在参数里面取。
int insertSelective(HTRAVEL record); //这里才是本次插入的主键Id record.getId();