问题:
在做关联表插入操作时,需要根据主表的 主键id作详情表的属性值,最笨的方法就是,先插入主表,然后通过查询返回刚刚插入的 主键id,继续 添加详情表数据。
解决办法:
在mybatis的配置文件中,有个叫keyProperty和useGeneratedKeys的属性。useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。
具体用法:
useGeneratedKeys=”true” keyProperty=”对应的主键的对象”。
例如:
ps:下图中的这种获取方式,得到的n并不是返回的该条数据的id,这个n只代表成功执行了1条数据
实际上,返回值的id是被set进传入的vo对象里了,所以需要从vo.getId()就可以得到