我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mybatis实现oracle主键自增的机制是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mybatis实现oracle主键自增的机制是什么

这篇文章主要介绍“mybatis实现oracle主键自增的机制是什么”,在日常操作中,相信很多人在mybatis实现oracle主键自增的机制是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatis实现oracle主键自增的机制是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的

在mysql中

create table Student(
 Student_ID  int(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,
 Student_Name varchar(10) NOT NULL,
 Student_Age int(2) NOT NULL
);

insert into student(student_name,student_age) values('zhangsan',20);

在sql server中

create table Student(
 Student_ID  int primary key identity(1,1),
 Student_Name varchar2(10) NOT NULL,
 Student_Age number(2) NOT NULL
);
insert into student(student_name,student_age) values('zhangsan',20);

在oracle中

create table Student(
 Student_ID  number(6) NOT NULL PRIMARY KEY,
 Student_Name varchar2(10) NOT NULL,
 Student_Age number(2) NOT NULL
);

而oracle如果想设置主键自增长,则需要创建序列

CREATE SEQUENCE student_sequence 
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
CACHE 10;

insert into Student values(student_sequence.nextval,'aa',20);

  如果使用了触发器的话,就更简单了

create or replace trigger student_trigger
  before insert on student  
  for each row
begin
  select student_sequence.nextval into :new.student_id from dual;
end student_trigger;
/

此时插入的时候触发器会帮你插入id

insert into student(student_name,student_age) values('wangwu',20);

  至此,mysql,sql server,oracle中怎样创建表中的自增长主键都已完成。

  看一看出oracle的主键自增较mysql和sql sever要复杂些,mysql,sqlserver配置好主键之后,插入时,字段和值一一对应即可,数据库就会完成你想做的,但是在oracle由于多了序列的概念,如果不使用触发器,oracle怎样实现主键自增呢?

<insert id="add" parameterType="Student">
  <selectKey keyProperty="student_id" resultType="int" order="BEFORE">
      select student_sequence.nextval from dual
    </selectKey>
     insert into student(student_id,student_name,student_age) values(#{student_id},#{student_name},#{student_age})
</insert>

  或者 

<insert id="save" parameterType="com.threeti.to.ZoneTO" >
    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
      SELECT SEQ_ZONE.CURRVAL AS id from dual
    </selectKey>
    insert into TBL_ZONE (ID, NAME ) values (SEQ_ZONE.NEXTVAL, #{name,jdbcType=VARCHAR})
</insert>

MyBatis 插入时候获取自增主键方法有二

  以MySQL5.5为例:

  方法1:

<insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id">
        insert into person(name,pswd) values(#{name},#{pswd})
</insert>

  方法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>

  插入前实体id属性为0;

  插入后实体id属性为保存后自增的id。

到此,关于“mybatis实现oracle主键自增的机制是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mybatis实现oracle主键自增的机制是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mybatis实现oracle主键自增的机制是什么

这篇文章主要介绍“mybatis实现oracle主键自增的机制是什么”,在日常操作中,相信很多人在mybatis实现oracle主键自增的机制是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatis
2023-02-15

oracle主键自增设置的方法是什么

在 Oracle 中,主键自增可以通过使用序列(Sequence)和触发器(Trigger)来实现。以下是设置自增主键的方法:创建一个序列(Sequence),定义序列的起始值、递增值和最大值等参数。CREATE SEQUENCE seq_
oracle主键自增设置的方法是什么
2024-04-09

Oracle 触发器是怎么实现主键自增效果

今天就跟大家聊聊有关Oracle 触发器是怎么实现主键自增效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。触发器的作用  触发器的作用类似拦截器.把一些针对数据库的DML操作(in
2023-06-22

oracle数据库表怎么实现自增主键

这篇文章主要讲解了“oracle数据库表怎么实现自增主键”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle数据库表怎么实现自增主键”吧!一、前言几天建表需要用到自增主键,于是使用序列
2023-07-02

oracle增加主键的方法是什么

要为现有表添加主键,可以使用ALTER TABLE语句。以下是在Oracle数据库中添加主键的方法:首先,使用ALTER TABLE语句指定要添加主键的表名:ALTER TABLE table_name然后,使用ADD CONSTRAIN
oracle增加主键的方法是什么
2024-04-09

oracle实现自增的方法是什么

在Oracle中实现自增的方法是通过序列(Sequence)对象实现的。序列是一种数据库对象,用于生成唯一的递增数值。可以使用以下语法创建序列:CREATE SEQUENCE sequence_name[INCREMENT BY n]
oracle实现自增的方法是什么
2024-04-09

Oracle实现主键字段自增的四种方式

目录oracle实现主键自增有4种方式:方式一:Identity Columns新特性自增准备工作:方式二:创建自增序列,创建表时,给主键字段默认使用自增序列方式三:创建自增序列,使用触发器使主键自增方式四:创建自增序列,插入语句(inse
2023-03-13

oracle数据库表实现自增主键的方法实例

目录http://www.cppcns.com一、前言二、实现主键自动增长1、创建表格2、创建自增序列3、创建触发器4、测试新增语句总结一、前言几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键
2022-06-23

MySQL中外键和主键的自动连接机制是什么?

MySQL中外键和主键的自动连接机制是通过建立外键约束来实现的。外键约束是一种关系约束,在一个表中的字段与另一个表中的字段建立关联,从而确保数据的一致性和完整性。主键是一个表中唯一标识每一行数据的字段,而外键则是另一个表中的主键,用于建立表
MySQL中外键和主键的自动连接机制是什么?
2024-03-15

Oracle实现主键字段自增的方式有哪些

今天小编给大家分享一下Oracle实现主键字段自增的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Oracle实现
2023-03-15

mybatis自动生成主键的方法是什么

MyBatis提供了多种自动生成主键的方法,以下是其中几种常用的方法:1. 使用数据库的自增主键:在数据库中将主键字段设置为自增类型,然后在MyBatis的映射文件中不需要显式指定主键的值,数据库会自动生成主键值。示例:```xmlINSE
2023-08-19

tk.mybatis实现uuid主键生成的方法是什么

这篇文章主要介绍“tk.mybatis实现uuid主键生成的方法是什么”,在日常操作中,相信很多人在tk.mybatis实现uuid主键生成的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”tk.my
2023-06-21

linux管道的实现机制是什么

今天小编给大家分享一下linux管道的实现机制是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-02-07

Ajax的内部实现机制是什么

Ajax的内部实现机制主要涉及以下几个方面:1. XMLHttpRequest对象:Ajax通过XMLHttpRequest对象与服务器进行数据交互。XMLHttpRequest对象可以发送HTTP请求和接收服务器返回的数据。2. 事件处理
2023-08-16

java实现多态的机制是什么

Java实现多态的机制是通过方法的重写和方法的动态绑定来实现的。方法的重写是指在继承关系中,子类可以重写(覆盖)父类的方法,使得子类在调用该方法时执行的是子类重写后的方法。重写后的方法具有相同的方法名、参数列表和返回类型。方法的动态绑定是指
2023-09-22

redis主从复制的实现方法是什么

本篇内容介绍了“redis主从复制的实现方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 简介这篇文章主要讲述Redis的主从复制
2023-06-05

Redis实现主从复制的方法是什么

本篇内容介绍了“Redis实现主从复制的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Master&Slave是什么?也就是我
2023-07-02

编程热搜

目录