通过修改sql映射文件,可以将mysql自增主键返回:
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<!-- selectKey将主键返回,需要再返回 -->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select LAST_INSERT_ID()
</selectKey>
insert into user(username,birthday,sex,address)
values(#{username},#{birthday},#{sex},#{address});
</insert>
添加selectKey实现将主键返回
keyProperty:返回的主键存储在pojo中的哪个属性
order:selectKey的执行顺序,是相对与insert语句来说,由于mysql的自增原理执行完insert语句之后才将主键生成,所以这里selectKey的执行顺序为after
resultType:返回的主键是什么类型
LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。
需要增加通过select uuid()得到uuid值
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<selectKey resultType="java.lang.String" order="BEFORE"
keyProperty="id">
select uuid()
</selectKey>
insert into user(id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})
</insert>
注意这里使用的order是“BEFORE”
oracle 主键生成:
首先自定义一个序列且用于生成主键,selectKey使用如下:
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<selectKey resultType="java.lang.Integer" order="BEFORE"
keyProperty="id">
SELECT 自定义序列.NEXTVAL FROM DUAL
</selectKey>
insert into user(id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})
</insert>
注意这里使用的order是“BEFORE”
分享到:
相关推荐
在Spring Boot项目中,整合MyBatis并利用MySQL实现主键UUID是一种常见的需求,尤其是在分布式系统中,为了保证数据的一致性和唯一性。UUID(Universally Unique Identifier)是一种全局唯一的标识符,它由128位数字...
本示例将深入探讨`Select`元素在MyBatis映射器中的应用。 在MyBatis中,`<select>`元素主要用于执行查询操作,如获取单个记录、多条记录或执行无返回值的SQL。下面,我们将详细解析`<select>`元素的各个属性及其...
Mybatis示例之SelectKey的应用 Mybatis是一种流行的持久层框架,提供了简洁的数据持久化解决方案。今天我们将讨论Mybatis的一个重要特性:SelectKey。SelectKey是Mybatis提供的一种机制,用于解决Insert数据时不...
SAP HANA 创建 sequence,及查询Dummy,和Mybaits 查询
本教程将详细介绍如何在Spring Boot项目中整合MyBatis,并使用@Select注解来实现数据库查询。 首先,我们需要在Spring Boot项目中引入MyBatis的依赖。在`pom.xml`文件中添加如下依赖: ```xml <groupId>org....
<selectKey keyProperty="id" resultType="int" order="BEFORE"> select my_seq.nextval from dual </selectKey> insert into user_pics(id, name, pic, bio) values(#{id}, #{name}, #{pic}, #{bio}) ...
在IT行业中,Mybatis作为一款流行的Java持久层框架,被广泛应用在数据访问操作中。它以其灵活、高效和易于理解的特性,深受开发者喜爱。本文将深入探讨在Mybatis中进行高级多表查询,特别是涉及懒加载和SQL优化的...
MyBatis 提供了多种主键回填方式,包括使用动态代理方式实现主键回填、使用 selectKey 标签实现主键回填和使用 UUID 或时间戳生成唯一主键。 MyBatis 的SQL 语句构建 MyBatis 提供了多种 SQL 语句构建方式,包括 ...
主要介绍了Mybatis的select方法,通过代码给大家详细介绍了selectByExample方法,selectById方法,需要的朋友可以参考下
在MyBatis中,SQL查询主要通过`SELECT`语句实现,本文将详细解析MyBatis的基本查询实现方法。MyBatis允许开发者直接在XML配置文件中编写SQL语句,从而实现灵活的数据查询。 1. **返回单个或列表对象** 当我们需要...
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...
在Mybatis框架中,@MapKey注解是一个非常实用的功能,它允许我们将查询结果转换成一个Map对象,其中键(key)由我们指定的字段值决定,值(value)则是查询返回的完整行数据。这在处理多条记录时特别有用,尤其是在结果...
import tk.mybatis.mapper.annotation.KeySql; import tk.mybatis.mapper.annotation.TableField; import tk.mybatis.mapper.annotation.TableName; @TableName("user") public class User { @TableId(value = "id...
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs...
如果需要在插入数据后获取自增的主键值,MyBatis提供了`<selectKey>`元素来实现这一功能。这通常在处理一对多关系,需要新主键值来关联多端数据时非常有用。 对于Oracle,配置如下: ```xml ...
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 ...
MyBatis允许你在Java接口方法上直接写SQL,使用`@Select`、`@Insert`、`@Update`和`@Delete`等注解,简化了开发过程。 5. **MyBatis注解方式** 使用注解的方式,可以将映射文件中的内容直接写在Mapper接口的方法...
@Select("SELECT * FROM user") Map, Object> getAllUsers(); } ``` 然后在Service层中调用`MapUtils.toCamelCaseMap`进行转换: ```java @Service public class UserService { @Autowired private UserMapper...
mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例...