如果想插入一条记录之后,立刻对其进行其他操作,这时候就需要获取记录的主键(通常是ID),MyBatis有以下方式处理。
Dao层的接口定义如下:
void importUser(@Param( "user" ) User user);
注意:这里不能因为要返回主键而定义接口的返回值类型为String或者int,会报错。
xml配置文件:
<insert id= "importUser" useGeneratedKeys = "true" keyProperty= "user.id" parameterType ="com.ywlaker.model.User" > INSERT INTO user (user_name) VALUES(#{user.userName,jdbcType=VARCHAR}) </insert >
useGeneratedKeys = "true" 表示返回主键
keyProperty= "user.id" 表示用参数user对象的id属性接收主键
这个方法执行完新纪录的主键就会插入user对象,想返回主键可以在上一层定义
@Override public String importUser(User user) throws ServiceException { try { this. UserMapper.importUser(user); return user.getId(); } catch (Exception e) { throw new ServiceException( "数据库错误!" ); } }
当然,直接返回user对象也可以。
时间: 2024-12-16 05:45:28