mybatis插入记录后获得主键id

今天做练习的时候发现了mybatis的一个坑

在进行插入操作后,我们需要获得新插入记录的主键id,一般来说有两种方法


	insert into s_blog (user_id, title, summary, content, draft_status, create_time, update_time) 
			values(#{userId}, #{title}, #{summary}, #{content}, #{draftStatus}, current_timestamp, current_timestamp)

或者


	
	            select last_insert_id() as userId
	 
	insert into user(email,password,activation_code,join_time,username,avatar_url)
	        values(#{email},#{password},#{activationCode},#{joinTime},#{username},#{avatarUrl})
第一种方法是利用jdbc的getGeneratedKeys方法,这种方式需要数据库支持主键自增,如mysql

像oracle这种不支持自增的可以使用第二种方式

那么问题来了,在我每次获得sql的返回值时得到的都是1,这个明显就是这条sql所影响的行数,

后来我发现要取得主键,不是直接获得sql的返回值,而是去实体类中取, 如blog.getBlogId().



你可能感兴趣的:(mybatis)