Search code examples
javadatabasemybatisibatis

Mybatis 3.1.1 insert function


I work Mybatis 3.1.1 and Postgresql 9.2. I Have Class Student (id, name). I want to insert a new record in the database and get its Id.

my code is

Student s=new Student();
s.setName("javagc");
studentMapper.insertSelective(s);

but s.getId() is null.

Can anybody help me?


Solution

  • Which database are you using?

    It should work on MySql, as mentioned in these questions; Get the id of last inserted record in mybatis, How to obtain last insert id in Oracle using MyBatis?

    I could not be able to make it work on my Oracle DB. So I manually took the current value of the sequence after the insertion.

    <insert id="insertSelective" parameterType="myObject">
            <selectKey keyProperty="seq_id" order="AFTER" resultType="int">
                  SELECT mySchema.myTable_seq.currval FROM dual
            </selectKey>
                INSERT INTO mySchema.myTable . . . 
    </insert>