Java代码TkMyBatis通用Mapper中新增数据时同时获取自增主键ID,与适用uuid 做主键时获取 id

50 篇文章 0 订阅
48 篇文章 3 订阅


一 . MyBatis mapper.xml文件中在xml

   1.   加入 这句 :useGeneratedKeys="true" keyProperty="ID"

       keyProperty="数据库中的主键字段名对应的实体类字段名" ;【填实体类字段名】

<insert id="insertSelective" parameterType="com.tc.lvmsm.vo.vm.Vehicle"
            useGeneratedKeys="true" keyProperty="ID">

2. 加  SELECT LAST_INSERT_ID()

<!-- 配置一个添加用户的sql语句,并且在查询之后得到用户的ID -->
	<insert id="saveUser" parameterType="com.igeek.crm.pojo.User">
		<!-- selectKey 标签实现主键返回 -->
		<!-- keyColumn:主键对应的表中的哪一列 -->
		<!-- keyProperty:主键对应的pojo中的哪一个属性 -->
		<!-- order:设置在执行insert语句前执行查询id的sql,孩纸在执行insert语句之后执行查询id的sql -->
		<!-- resultType:设置返回的id的类型 -->
		<selectKey keyColumn="id" keyProperty="id" order="AFTER"
			resultType="int">
			SELECT LAST_INSERT_ID()
		</selectKey>
		INSERT INTO `user`
		(username,birthday,sex,address) VALUES
		(#{username},#{birthday},#{sex},#{address})
	</insert>

3.不适用自增ID ,使用UUID做主键  加 SELECT uuid()

	<!-- 保存用户 使用UUID做主键 -->
	<insert id="saveUser1" parameterType="com.igeek.crm.pojo.User">
		<!-- selectKey 标签实现主键返回 -->
		<!-- keyColumn:主键对应的表中的哪一列 -->
		<!-- keyProperty:主键对应的pojo中的哪一个属性 -->
		<!-- order:设置在执行insert语句前执行查询id的sql,在执行insert语句之后执行查询id的sql -->
		<!-- resultType:设置返回的id的类型 -->
		<selectKey keyColumn="uuid" keyProperty="uuid" order="BEFORE"
			resultType="string">
			SELECT uuid()
		</selectKey>
		INSERT INTO `user1`
		(username,birthday,sex,address,uuid) VALUES
		(#{username},#{birthday},#{sex},#{address},#{uuid})
	</insert>

二.TkMyBatis通用Mapper中 在实体类的主键属性上加 注解:

     1.自增主键用法:      

     @Id

      @GeneratedValue(strategy=GenerationType.IDENTITY)

      private Integer id;   

     2.序列主键用法(适用Oracle):

   @Id

      @GeneratedValue(

        strategy = GenerationType.IDENTITY,

        Generator = "select SEQ_ID.nextval from dual"  )

       private Integer id;

谢谢赞助与支持!

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值