Mysql
 sql >> Database >  >> RDS >> Mysql

MyBatis, come ottenere la chiave generata automaticamente da un inserto? [MySql]

Per me funziona in questo modo (mybatis 3.x) ..L'id deve essere impostato come incremento automatico nella tabella mysql

<insert id="createEmpty" parameterType="Project" useGeneratedKeys="true" keyProperty="project.projectId" keyColumn="PROJECT_ID">
    INSERT INTO PROJECT (TITLE,DESCRIPTION)
    VALUES
    (#{title},#{description})
</insert>

NOTA keyProperty="project.projectId" e useGeneratedKeys="true"

la mia interfaccia è:

public int createEmpty(@Param("project") Project project, @Param("title") String title,
    @Param("description") String description);

infine per ottenere il valore (che verrà automaticamente assegnato alla proprietà id del pojo) utilizzo:

projectRepository.createEmpty(p, "one", "two");
System.err.print(p.getProjectId() + "\n");