mybatis入门--主键返回(九)

自增主键返回

mysql自增主键,执行insert提交之前自动生成一个自增主键。

通过mysql函数获取到刚插入记录的自增主键:

LAST_INSERT_ID()

是insert之后调用此函数。

修改insertUser定义:

非自增主键返回(使用uuid())

使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位。

执行思路:

先通过uuid()查询到主键,将主键输入 到sql语句中。

执行uuid()语句顺序相对于insert语句之前执行。

通过oracle的序列生成主键:

<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">

SELECT 序列名.nextval()

</selectKey>

insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address})

时间: 2024-08-13 10:53:52

mybatis入门--主键返回(九)的相关文章

mybatis的执行流程 #{}和${} Mysql自增主键返回

n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的运行环境等信息. Mapper.xml文件即Sql映射文件,文件中配置了操作数据库的Sql语句.此文件需要在SqlMapConfig.xml中加载. n 通过Mybatis环境等配置信息构造SqlSessionFactory,即会话工厂. n 由会话工厂创建SqlSession即会话,操作数据库需要通过SqlSession进行. n Mybatis底层自定义了Executor执行器接口操作数据库,Exec

mybatis+oracle 完成插入数据库,并将主键返回的注意事项

mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_NO VARCHAR2(200), UM_CODE VARCHAR2(50), BATCH_STATUS CHAR(1) DEFAULT '0', BATCH_TYPE CHAR(1), CREATED_DATE DATE, CREATED_BY VARCHAR(100), UPDATED_DATE

mybatis自增主键返回

自增主键的返回: mysql自增主键,执行insert提交之前自动生成一个自增主键. 通过mysql函数获取到刚插入记录的自增主键: LAST_INSERT_ID() 是insert之后调用此函数. 修改insertUser定义: 非自增主键返回: 使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位. 执行思路: 先通过uuid()查询到主键,将主键输入 到sql语句中. 执行uuid()语句顺序相对于insert语句之前执行. 通过oracle的

mybatis主键返回

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

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

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

mybatis主键返回的实现

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

mybatis新增主键的返回值

在主键自增的数据库中返回新增数据的主键方式:根据mybatis文档 useGeneratedKeys (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false. keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGener

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

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

mybatis plus 主键生成 Twitter雪花算法 id 及修改id为字符型

mybatis plus配置主键生成策略为2,就是 使用Twitter雪花算法 生成id spring boot中配置为: GlobalConfiguration conf = new GlobalConfiguration(new LogicSqlInjector()); conf.setIdType(5); 这样生成的是long类型的,如果想把这个id 转为字符串类型,则配置主键生成策略为5就行了 https://gitee.com/baomidou/mybatis-plus/blob/de