mybatis使用注解和xml方式插入数据后获取自增长的主键值

  1. 写SQL,但不要自己插入主键值
  2. 配置

@Options(useGeneratedKeys=true, keyProperty="对象.属性")

这个的作用是设置是否使用

JDBC的getGenereatedKeys()

方法获取主键并赋值到keyProperty设置的对象的属性中,说白了就是把自增长的主键值赋值给对象相应的属性

  1. 在插入后,使用对象.主键属性的getXXId()方法 获取主键值

示例:

@Insert("INSERT INTO api(component, clientApi, scribeDescribe, clientApiVersion, invokeTimeout, authType, sessionRequire, openType) VALUES(#{api.component}, #{api.clientApi}, #{api.scribeDescribe}, #{api.clientApiVersion}, #{api.invokeTimeout}, #{api.authType}, #{api.sessionRequire}, #{api.openType})")
@Options(useGeneratedKeys = true, keyProperty = "api.apiId")
void add(@Param("api") Api api);

然后调用api.getApiId()即可

---------------------------------------xml-------------

<insert id="addUser" useGeneratedKeys="true" parameterType="com.lan.vote.model.User"  keyProperty="id">
    insert into User(name) values(#{name})
</insert>

User user = new User();
user.setUserName("chenzhou");
 
userDao.insertAndGetId(user);
//插入操作
Integer id = user.getUserId()
//直接获取主键id
System.out.println("返回的主键为:"+id);

-------------
public class User {
    private int id;
    private String name;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id= id;
    }
    //省略其它 get 和 set方法
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值