![9869701c1c9ce4e889246e7a5743fd7f.png](https://i-blog.csdnimg.cn/blog_migrate/f0fb76d427a641262ede2e2bfaf63840.jpeg)
使用mybatis,实现持久化 org.mybatis.generator插件用来自动生成数据库表对应的实体类。
其中遇到了一个问题,如果主键是自增长或者由数据库生成的话,在使用xxxMapper.insert()和xxxMaper.insertSelective()的时候,这两种方法返回的是影响的行数,并不会返回相应的插入主键的id。而我们在后面的代码中可能需要用到刚刚保存的实体类的id,那么怎么样能获取到保存数据的id呢?
看了下根据generator插件自动生成的xml文件
SELECT LAST_INSERT_ID()……
里面order="BEFORE",这个order有两个值,一个BEFORE,一个AFTER,分别表示插入语句前执行和插入语句后执行。因为我们的id是由数据库自动生成的,所以只有在数据插入之后才会有id,所以需要修改为AFTER即可,这样在插入实体类后我们就可以获取到相应的id值了。如图所示:
![b5837244aa03e916513e68ad78f92bc3.png](https://i-blog.csdnimg.cn/blog_migrate/79d761f930fd00eeeddd594ef9ca2517.jpeg)
关注我,不定时发布java那点事,解决工作中遇到的烦恼,我是理财的程序员。