mybatis主键回填和自定义

主键回填

    insert配置字段:

      id:和命名空间组合作为唯一标识

      keyProperty:主键列名,联合组建则以分号分隔

      useGeneratedKeys:是否内部生成主键

      keyColumn:主键是第几列

    例子:(role有id,roleName,note三个属性)

    <insert id="insertRole" parameterType="role"  useGeneratedKeys="true"

      keyProperty="id">

      insert into t_role (role_name,note) values (#{roleName},#{note})

    </insert>

自定义

  

 <insert id="insertRole" parameterType="role"  useGeneratedKeys="true"

      keyProperty="id">

    <selectKey keyProperty="id" resultType="int" order=""BEFORE>

      select if(max(id) is null,1,max(id)+2) as newId from t_role

    </selectKey>

      insert into t_role (id,role_name,note) values (#{id},#{roleName},#{note})

 </insert>

时间: 2024-10-19 13:28:28

mybatis主键回填和自定义的相关文章

MyBatis中主键回填的两种实现方式

主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主键回填在 MyBatis 中的两种实现思路. 原生写法 框架来源于我们学过的基础知识,主键回填实际上是一个在 JDBC 中就被支持的写法,有的小伙伴可能不知道这一点,因此这里我先来说说在 JDBC 中如何实现主键回填. JDBC 中实现主键回填其实非常容易,主要是在构造 Prepar

3、SpringBoot+Mybatis整合------主键回填

开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/d68efe51774fc4d96e5c6870786eb3f1a1a5b629 前言: 当我们插入一个一对一.一对多.多对多的关系数据时,往往需要分表插入,那么我们可能需要获取自动生成的主键用于后面的插入操作,因此今天来介绍下mybatis里的主键回填. 一.代码实现: 1.数据操作层接口mapper: 1 package com.xm.map

SpringJPA主键生成采用自定义ID,自定义ID采用年月日时间格式

自定义主键生成策略 在entity类上添加注解 @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "custom-id") @GenericGenerator(name = "custom-id", strategy = "com.h5page-mapdiy.utils.CustomIDGenerator") @Column(name = "id")

2017.9.15 mybatis批量插入后实现主键回填

参考来自:mybatis mysql 批量insert 返回主键 注意:必须要在mybatis3.3.1及其以上才能实现. 1.service 1 List branchEntryList = (ArrayList<Entry>)entryMap.get("branchEntryList"); 2 branchDao.insertBatch(branchEntryList); 2.dao 3.xml 注意这里是list,不管参数名叫什么,这里都是list. 4.效果 执行前

mybatis主键返回的实现

向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键. 比如添加一个用户,同时返回插入用户后得到的用户id: /** * 添加用户信息 * @param user * @throws Exception */ public intinsertUser(User user) throw

oracle,mybatis主键自增长

<insert id="insert" parameterType="resource"> <selectKey resultType="long" order="BEFORE" keyProperty="id"> SELECT sys_resource_id_SEQ.NEXTVAL AS id FROM DUAL </selectKey> INSERT INTO <

mybatis主键返回

在项目开发中,有时需要获取主键值. 比如在表的关联关系中,将数据插入主表之后需要再插入子表,我们需要把主表的主键作为外键插入子表中. 这样的话就需要获取主键值了. 所以涉及主键返回的问题. 1.自增主键的返回 MYSQL自增主键,执行insert提交之前自动生成一个自增主键. 通过mysql函数获取到刚刚插入的记录的自增主键. LAST_INSERT_ID(),在insert之后调用此函数. <insert id="insertUser" parameterType="

mybatis主键返回语句 使用方法,就是实体类.getid即可拿到返回的id

<insert id="insertSelective" parameterType="com.o2o.Content" useGeneratedKeys="true" keyProperty="id"> insert into notice_ncontent <trim prefix="(" suffix=")" suffixOverrides=",&quo

Oracle 给表添加主键和使ID自增

1.关于主键:在建表时指定primary key字句即可:create table test( id number(6) primary key, name varchar2(30));如果是对于已经建好的表,想增加主键约束,则类似语法:alter table test add constraint pk_id primary key(id); 其中add constraint 和 primary key是关键字,pk_id是主键名称,自定义的额,只要不重复即可. 2.关于id自增功能,也很简单