广告
返回顶部
首页 > 资讯 > 数据库 >mybatis实现oracle主键自增的机制是什么
  • 752
分享到

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

mybatisoracle 2023-02-15 15:02:12 752人浏览 安东尼
摘要

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

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

首先我们看对于同一张student表,对于MysqlSQL 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主键自增的机制是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: mybatis实现oracle主键自增的机制是什么

本文链接: https://www.lsjlt.com/news/196224.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • mybatis实现oracle主键自增的机制是什么
    这篇文章主要介绍“mybatis实现oracle主键自增的机制是什么”,在日常操作中,相信很多人在mybatis实现oracle主键自增的机制是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2023-02-15
    mybatis oracle
  • Oracle 触发器是怎么实现主键自增效果
    今天就跟大家聊聊有关Oracle 触发器是怎么实现主键自增效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。触发器的作用  触发器的作用类似拦截器.把一些针对数据库的DML...
    99+
    2023-06-22
  • oracle数据库表怎么实现自增主键
    这篇文章主要讲解了“oracle数据库表怎么实现自增主键”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle数据库表怎么实现自增主键”吧!一、前言几天建表需要用到自增主键,于是使用序列...
    99+
    2023-07-02
  • Oracle实现主键字段自增的四种方式
    目录oracle实现主键自增有4种方式:方式一:Identity Columns新特性自增准备工作:方式二:创建自增序列,创建表时,给主键字段默认使用自增序列方式三:创建自增序列,使用触发器使主键自增方式四:创建自增序列...
    99+
    2023-03-13
    oracle中主键自增 oracle数据库怎么设置主键自增
  • Oracle实现主键字段自增的方式有哪些
    今天小编给大家分享一下Oracle实现主键字段自增的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2023-03-15
    oracle
  • oracle数据库表实现自增主键的方法实例
    目录一、前言二、实现主键自动增长1、创建表格2、创建自增序列3、创建触发器4、测试新增语句总结一、前言 几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键自增,在网上查了一些知...
    99+
    2022-06-23
    oracle数据库怎么设置主键自增 oracle数据库设置id自增 oracle设置自增主键
  • mybatis自动生成主键的方法是什么
    MyBatis提供了多种自动生成主键的方法,以下是其中几种常用的方法:1. 使用数据库的自增主键:在数据库中将主键字段设置为自增类型...
    99+
    2023-08-19
    mybatis
  • 为什么mysql自增主键不是连续的
    目录一 前言二 自增值存储说明三 自增值修改机制四 自增值修改时机五 导致自增值不连续的原因5.1 唯一键冲突5.2 事务回滚5.3 批量写库操作六 参考文档 一...
    99+
    2022-11-12
  • 如何用注解的方式实现Mybatis插入数据时返回自增的主键Id
    目录用注解实现Mybatis插入数据返回自增的主键Id设计数据库表设计Java bean对象添加mapper接口Mybatis注解增(返回自增id) 删查改以及(一对一,一对多,多对...
    99+
    2022-11-13
  • tk.mybatis实现uuid主键生成的方法是什么
    这篇文章主要介绍“tk.mybatis实现uuid主键生成的方法是什么”,在日常操作中,相信很多人在tk.mybatis实现uuid主键生成的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”tk.my...
    99+
    2023-06-21
  • Redis实现主从复制的方法是什么
    本篇内容介绍了“Redis实现主从复制的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Master&Slave是什么?...
    99+
    2023-07-02
  • redis主从复制的实现方法是什么
    本篇内容介绍了“redis主从复制的实现方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 简介这篇文章主要讲述Redis的主从复制...
    99+
    2023-06-05
  • linux管道的实现机制是什么
    今天小编给大家分享一下linux管道的实现机制是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-02-07
    linux
  • java实现多态的机制是什么
    Java实现多态的机制是通过方法的重写和方法的动态绑定来实现的。方法的重写是指在继承关系中,子类可以重写(覆盖)父类的方法,使得子类...
    99+
    2023-09-22
    java
  • Ajax的内部实现机制是什么
    Ajax的内部实现机制主要涉及以下几个方面:1. XMLHttpRequest对象:Ajax通过XMLHttpRequest对象与服...
    99+
    2023-08-16
    Ajax
  • Mysql锁的内部实现机制是什么
    这篇“Mysql锁的内部实现机制是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mys...
    99+
    2022-10-19
  • C++虚函数的实现机制是什么
    这篇文章主要讲解了“C++虚函数的实现机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++虚函数的实现机制是什么”吧!目录虚函数简介虚函数表简介有继承关系的虚函数表剖析1、单继承无...
    99+
    2023-06-20
  • java反射机制的实现原理是什么
    Java反射机制是指在运行状态中,对任意一个类都能够知道这个类的所有属性和方法,对任意一个对象都能够调用它的任意一个方法。实现Jav...
    99+
    2023-08-08
    java
  • angular的样式隔离实现机制是什么
    本篇内容主要讲解“angular的样式隔离实现机制是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“angular的样式隔离实现机制是什么”吧!angular...
    99+
    2022-10-19
  • thinkphp插件钩子的实现机制是什么
    这篇文章主要介绍“thinkphp插件钩子的实现机制是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp插件钩子的实现机制是什么”文章能帮助大家解决问题。现在主流的cms或者blog...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作