MyBatis 插入时候获取自增主键
方法有二
方法1-1:
<insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id">
insert into person(name,pswd) values(#{name},#{pswd})
</insert>
方法1-2:
<insert id="insert" parameterType="Person">
<selectKey keyProperty="id" resultType="long">
select LAST_INSERT_ID()
</selectKey>
insert into person(name,pswd) values(#{name},#{pswd})
</insert>
方法2:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
insert插入后可以通过getId()获取id
采用注解方式,经测试需要给主键设置自增长。
相关推荐
在MyBatis中,主键自动生成是一种常见且实用的功能,尤其在与支持自动增加主键的数据库(如MySQL)配合使用时。当我们在插入数据时,有时希望数据库能够自动为新记录生成唯一的主键值,而不是手动指定。MyBatis提供...
在MySQL中,某些字段通常设置为自增长,比如订单ID,这种字段在新记录插入后会自动递增,无需手动赋值。在上述场景下,我们经常需要在插入数据后获取这个自增长的ID值,以便进一步处理,如将订单ID关联到其他表。...
本文将详细讲解如何在MyBatis中实现Oracle的自增序列,并配置MyBatis以支持Oracle的主键自增长。 首先,你需要在Oracle数据库中创建一个序列对象。例如,你可以创建一个名为`SEQ_TABLE`的序列: ```sql CREATE ...
Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长...
其中,`keyProperty` 表示返回的 ID 要保存到对象的那个属性中,而 `useGeneratedKeys` 表示主键 ID 为自增长模式。 例如: ```xml insert into user (user_id, user_name, modified, state) values (#{userId,...
这个特性在处理像MySQL、SQL Server等支持自动增长字段的数据库时特别有用,可以避免进行额外的查询来获取新插入记录的主键。本文将深入探讨`useGeneratedKeys`的工作原理以及它在批量插入和`ON DUPLICATE KEY ...
+ "\n刚刚插入记录的主键自增长值为:" + spares.getId()); } ``` 此外,还有一种方法是使用`<selectKey>`标签。`<selectKey>`允许在插入语句之前或之后执行一个查询,以获取自增主键。例如: ```xml select ...
`id`字段是主键,自动增长;`username`和`password`字段不允许为空;`email`字段允许为空,且设置了默认的字符集为utf8。 Mybatis是如何与这些表交互的呢?在Mybatis的配置文件中,我们需要指定数据源和SQL映射文件...
对于 MySQL 数据库,使用 `selectKey` 元素可以获取自动增长的主键值,示例代码如下: ```xml insert into user (name,password) values (#name#,#password#) SELECT LAST_INSERT_ID() AS ID ``` 在上面...
第17、18集则关注于自增主键的处理,17集展示了如何获取插入后自动生成的主键,通常在MySQL等支持自动增长主键的数据库中使用。而在18集中,针对Oracle数据库,讲解了如何利用序列来生成主键,这是Oracle数据库特有...
在本例中,我们创建了一个名为`student`的表,包含`id`(主键,自动增长),`name`(姓名)和`age`(年龄)三个字段。表结构如下: ```sql CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` ...
提供了多种主键生成策略,包括 Identity(自动增长)、Sequence(序列)、雪花算法等,可以根据不同的数据库环境选择合适的策略。 7. **自定义全局配置**: 可以通过配置文件或注解来设定全局的配置,如逻辑删除...
2. **表配置**:在`<table>`标签中,我们可以指定要生成代码的数据库表,包括表名、是否生成主键(如果表有自动增长的主键字段)等。例如: ```xml enableUpdateByExample="false" enableDeleteByExample="false...
3. 主键策略:支持多种主键生成策略,如Identity(自动增长)、Sequence(序列)或自定义的KeyGenerator。 4. 数据库兼容性:MBG支持多种主流的数据库,如MySQL、Oracle、SQL Server等。 5. 增删改查方法:MBG会为...
11. **主键策略**:MBG提供了多种主键生成策略,如自动增长、序列、UUID等,适应不同数据库环境的需求。 12. **自定义扩展**:如果默认的生成规则不能满足需求,开发者可以通过实现MBG的插件机制来自定义扩展,比如...
- **主键生成策略**:支持多种主键生成策略,如序列、自动增长等。 5. **自定义模板**: MBG允许用户通过自定义模板来自定义生成的Java代码和XML文件,以满足特定的编码规范或项目需求。 6. **版本更新**: `...
- MySQL:利用自增长特性,通过 SQL 语句 `SELECT LAST_INSERT_ID()` 获取最后插入行的 ID。 #### 7. 关联关系处理 - **处理方式**:支持多种关联查询方式,包括连接查询和两次查询方式。 - 一对多:使用连接...
4. **主键策略**:MyBatis-Plus 支持多种主键生成策略,包括 Identity(自动增长)、Sequence(序列)、雪花算法等,可以根据不同的数据库类型选择合适的策略。 5. **批量操作**:支持批量插入、更新和删除,可以一...
- 在 "isoft" 数据库中创建一个名为 "user" 的表,包含字段 `id`(主键,自动增长)、`name`、`dept`、`website` 和 `phone`。 4. **创建 MyBatis 配置文件**: - 在 `src/config` 目录下创建 `Configure.xml` ...
但是,这仅适用于数据库支持自增且数据类型为整数的情况,如 MySQL 的 `INT AUTO_INCREMENT`。 总之,避免 MyBatis-Plus 插入时的“id 值不存在异常”,关键在于正确地配置 `@TableId` 注解,以及确保插入的数据...