Skip to main content
 首页 » 编程设计

mysql之如何在 MyBatis 对象中返回自动生成的 ID

2023年09月21日77shanyou

我正在使用 MySQL 5.5.46 以及 MyBatis 3.3Spring 4.2。我有一个表,其主键列的类型为 VARCHAR(32)。在我的映射文件中,我有这样的声明。请注意,我使用 MySql 的 uuid() 自动生成 ID。然后我如何获取此 ID 并将其填充到返回的对象中?我正在尝试 LAST_INSERT_ID() 但那不起作用......

<insert id="insertMyObject" parameterType="org.mainco.myproject.domain.MyObject" keyProperty="id"  keyColumn="id"> 
    insert into cb_myproject_sync_entity_link(id, links_self, links_schools, links_teachers, links_students, links_sections, links_grade_levels, links_contacts) 
    values(replace(uuid(), '-', ''),#{linksSelf}, #{linksSchools}, #{linksTeachers}, #{linksStudents}, #{linksSections}, #{linksGradeLevels}, #{linksContacts})      
   <selectKey keyProperty="id" resultType="String" order="AFTER">SELECT LAST_INSERT_ID();</selectKey> 
</insert> 

请您参考如下方法:

尝试在 mybatis 配置中使用此设置:

<settings> 
   <setting name="useGeneratedKeys" value="true"/> 
</settings>