mybatis自动生成的insert语句有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis自动生成的insert语句有啥区别相关的知识,希望对你有一定的参考价值。

参考技术A 主键是自动赋值在对象中的。
比如对象User,属性id为主键,name,age
User
user
=
new
User();
user.setName("test");
user.setAge(16);
调用mybatis的insert(user);返回值是1,该条记录的主键通过user.getId();即可获龋

MySQL 中的 INSERT 和 UPDATE 有啥区别?

【中文标题】MySQL 中的 INSERT 和 UPDATE 有啥区别?【英文标题】:What are differences between INSERT and UPDATE in MySQL?MySQL 中的 INSERT 和 UPDATE 有什么区别? 【发布时间】:2011-01-01 10:19:18 【问题描述】:

似乎INSERTUPDATE 对我做同样的事情。

在什么情况下我应该使用INSERT 而不是UPDATE,反之亦然?

【问题讨论】:

如果你真的相信:1)创建一个表,2)立即运行一个UPDATE语句3)从表中选择*。 【参考方案1】:

在CRUD operations 中,INSERT 是“C”,UPDATE 是“U”。它们是持久存储的四个基本功能中的两个。另外两个是SELECTDELETE。至少没有这四个操作,一个典型的数据库系统不能被认为是完整的。

使用INSERT 插入一条新记录。

使用UPDATE 更新现有记录。

【讨论】:

为什么不能直接插入现有记录。也许 SQL 不允许这样做,但它们不就等同于同一件事吗? 在 CQL 中(不是 MySQL),您可以将数据插入到现有数据中。但主键必须相同。【参考方案2】:

您不能更新不在表中的行。

您不能插入已经在表中的行。

【讨论】:

如果您需要将数据添加到可能有数据也可能没有数据的列中怎么办?是否有强制插入模式,或某种 INSERT-UPDATE 混合模式? 在mysql中,我们有EXISTS关键字和IFNULL关键字来检查引用的数据是否处于某种状态。它看起来像 INSERT INTO table_name IFNULL follower by UPDATE table_name IF EXISTS。这种方法可能需要更多的线路而不是理想的,老实说可能有更好的解决方案,但至少它会起作用【参考方案3】:

Insert 用于向表中添加数据,update 用于更新表中已有的数据。

【讨论】:

【参考方案4】:

UPDATE 语句可以使用 WHERE 子句,但 INSERT 不能。

【讨论】:

这不是真的。在docs.microsoft.com/en-us/sql/t-sql/statements/…有使用 WHERE 的 INSERT 示例【参考方案5】:

插入用于将新记录放入表中。而更新使您能够修改插入的记录,例如修改数据类型等。

【讨论】:

【参考方案6】:

插入对于在空白行中插入新记录很有用。 而 Update 可用于更新非空白行。

【讨论】:

以上是关于mybatis自动生成的insert语句有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

mybatis insert 返回主键 的before 和after的区别

MyBatis 这小子是怎样拿到 insert 时生成的主键的?

mybatis执行insert后马上能获取自增主键的语句写法

MySQL 中的 INSERT 和 UPDATE 有啥区别?

sql 数据库中 添加语句 insert 中的 into 有与无都有啥区别?

springboot整合mybatis使用xml实现sql语句的配置,在insert之后返回自增id