mybatis进行insert操作,得到自增的id

来源:互联网 发布:金融学入门书籍 知乎 编辑:程序博客网 时间:2024/05/16 08:19

     今天写项目时,前端要求往数据库插入一条数据后,返回刚刚自增的id。

   网上查了很多资料,发现都是以下的方法:

<insert id="createTest" parameterType="Test" useGeneratedKeys="true" keyProperty="id">INSERT INTOauto_test(name,remark,create_time,status,companyId)VALUES(#{name},#{remark},#{create_time},#{status},#{companyId})</insert>
   但是接收到的都是1,这里1的意思不是返回的id,而是成功操作的数据条数。

   后来经过同事的指点,才发现这个mybatis是有一个内存机制的。具体的原因我也不清楚,代码奉上:

  

   class Student{   private int id;   ...} 
在service中
  class StudentService{  public int addStudent(Student stu){   studntDao.insert(stu);   int id=stu.getId();   //这样就可以得到自增的id了 }}
  mapper的话还是一样的。

0 0