在MyBatis中,如果你希望在插入数据时返回主键值,可以通过在<insert>
标签中使用useGeneratedKeys="true"
属性和keyProperty
属性来实现。useGeneratedKeys
属性表示使用数据库生成的主键,而keyProperty
属性则指定用来接收这个生成主键的属性名。
以下是一个简单的例子:
假设你有一个用户表(user),该表的主键是id,并且这个id是由数据库自动生成的。你可以在MyBatis的Mapper XML文件中这样定义插入操作:
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (name, email) VALUES (#{name}, #{email})
</insert>
在这个例子中,useGeneratedKeys="true"
告诉MyBatis使用数据库生成的主键,而keyProperty="id"
则告诉MyBatis将生成的主键值设置到对象的id
属性中。
然后,在你的Mapper接口中,你可以这样定义insertUser
方法:
int insertUser(User user);
当你调用这个方法并传入一个User
对象时,MyBatis会执行插入操作,并将生成的主键值设置到传入对象的id
属性中。插入操作执行后,方法会返回插入的记录数,通常是1(表示插入了一条记录)。
如果你只想获取生成的主键值,而不关心插入的记录数,你可以在插入操作之后直接从传入对象的id
属性中获取它。例如:
User user = new User();
user.setName("John Doe");
user.setEmail("john.doe@example.com");
mapper.insertUser(user);
int generatedId = user.getId(); // 获取生成的主键值
标签:主键,插入,键值,user,mybatis,id,属性
From: https://www.cnblogs.com/del88/p/18311465