利用Mybatis怎么实现返回插入的主键id
林雅南 2023-07-12编程经验
Mybatis的insert用法Mybatis中,使用insert语句可以插入新的数据到数据库中,以下是一段基本的insert语句示例。//Mapper.xml文件
Mybatis的insert用法
Mybatis中,使用insert语句可以插入新的数据到数据库中,以下是一段基本的insert语句示例。
// Mapper.xml文件 <insert id="insertData" parameterType="com.example.Data"> insert into data_table(name, age) values (#{name}, #{age}) </insert>
上述代码中,我们定义了一个insert语句,其中id是"insertData",parameterType是"com.example.Data",更加具体的数据字段的值是通过`#{}`占位符来引用的。这种方式非常常见,可以写出实现插入数据的代码。
使用Mybatis返回插入的主键ID
Mybatis提供了一种方便的方法,使得在插入操作后,可以获取插入数据的主键ID。
// Mapper.xml文件 <insert id="insertDataGetKey" parameterType="com.example.Data"> insert into data_table(name, age) values (#{name}, #{age}) <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long"> select LAST_INSERT_ID() </selectKey> </insert>
上述代码中,新增加的 \
Mybatis通过useGeneratedKeys获取主键ID
除了使用上述的\
// Mapper.xml文件 <insert id="insertDataGetKey" parameterType="com.example.Data" useGeneratedKeys="true" keyProperty="id"> insert into data_table(name, age) values (#{name}, #{age}) </insert>
上述代码中,我们使用了<insert>标签的useGeneratedKeys属性来获取插入数据的ID值。keyProperty属性同样也是指定了返回值将会赋值给哪一个属性。
Mybatis获取多个自增主键ID
如果需要批量插入多条数据,且每条数据都需要返回自增的主键ID,那么可以使用Mybatis的批量操作。
// Mapper.xml文件 <insert id="batchInsertData" parameterType="list" useGeneratedKeys="true" keyProperty="id"> insert into data_table(name, age) values <foreach collection="list" item="data" index="index" separator=","> (#{data.name}, #{data.age}) </foreach> </insert>
上述代码中,我们使用了<insert>标签中的useGeneratedKeys属性来获取插入的ID值,同时keyProperty属性指定的是每条数据的ID值的属性名。注意,这里使用了Mybatis的批量插入操作,因为我们需要一次性插入多条数据并获取相应的多条自增ID。
很赞哦! ()