MyBatis-Plus学习-part2 MP获取自增主键值

本文详细介绍了在MyBatis框架中如何处理自增主键与非自增主键的生成策略。对于自增主键,利用useGeneratedKeys与keyProperty属性实现主键的自动回写;对于非自增主键,通过selectKey元素预先计算并设置主键值。同时,展示了MyBatis Plus在插入操作中自动回写主键值的便捷性。

MyBatis获取自增主键与非自增主键

需要通过useGeneratedKeys 以及 keyProperty

  	<!-- 	在mysql数据库中,每张表的自增列只能有一个 -->
  	<!-- useGeneratedKeys 使用自动生成的主键,keyProperty将自动生成的主键映射给那个属性 -->
  	<insert id="insertEmployee" useGeneratedKeys="true" keyProperty="id"> 
  		insert into t_employees(empName,gender,email) values(#{empName},#{gender},#{email})
  	</insert>
  	<!-- 如何获取非自增主键 -->
  	<insert id="insertEmployeeAutoFillId">
  		<!-- 查询主键,在核心sql语句之前运行一个查询sql查到的id,将查询到的id复制给javabean的id属性使用 -->
	  	<selectKey order="BEFORE" resultType="integer" keyProperty="id">
  			select max(id)+1 from t_employees
	  	</selectKey>
  		insert into t_employees(id,empName,gender,email) values(#{id},#{empName},#{gender},#{email})
  	</insert>

MP 获取自增主键

自动将主键值回写到实体类中

@Test
	public void testCommonInsert() {
		Employee em = new Employee(null,"Lilith","Lilith@Sina.com",0,10);
		em.setSalary(20000.0);
		Integer insertRes = employeeMapper.insert(em);
		System.out.println("insertRes ======= " + insertRes);
		
		//获取当前数据在数据库中的主键值
		Integer id = em.getId();
		System.out.println("id ====== " + id);
	}

虽然id传入的是null,得到自增值后会回写给id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值