首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在MyBatis中获取从Oracle触发器创建的ID - Spring Boot

在MyBatis中获取从Oracle触发器创建的ID可以通过以下步骤实现:

  1. 首先,在Oracle数据库中创建一个触发器,用于在插入数据时生成ID。触发器可以使用序列来生成唯一的ID值,并将其赋给相应的列。
  2. 在MyBatis的Mapper XML文件中,编写插入数据的SQL语句,并使用<selectKey>元素来获取从触发器生成的ID。示例如下:
代码语言:txt
复制
<insert id="insertData" parameterType="YourParameterType">
  <!-- 插入数据的SQL语句 -->
  INSERT INTO your_table (column1, column2) VALUES (#{value1}, #{value2})
  
  <!-- 获取从触发器生成的ID -->
  <selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER">
    SELECT your_sequence_name.CURRVAL FROM DUAL
  </selectKey>
</insert>

在上述示例中,your_table是要插入数据的表名,column1column2是要插入的列名,#{value1}#{value2}是对应的参数值。your_sequence_name是用于生成ID的序列名。

  1. 在Java代码中,调用MyBatis的insertData方法来插入数据,并获取从触发器生成的ID。示例如下:
代码语言:txt
复制
YourParameterType parameter = new YourParameterType();
parameter.setValue1("value1");
parameter.setValue2("value2");

yourMapper.insertData(parameter);

Long id = parameter.getId();

在上述示例中,YourParameterType是自定义的参数类型,用于传递插入数据的值。yourMapper是MyBatis生成的Mapper接口,insertData是对应的方法名。

通过以上步骤,你可以在MyBatis中获取从Oracle触发器创建的ID。请注意,上述示例中的表名、列名、序列名等需要根据实际情况进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2021金三银四,啃完这35个Java技术栈,冲刺年薪百万!

16、如何在 Spring Boot 启动的时候运行一些特定的代码? 17、什么是 JavaConfifig? 18、Spring Boot 是否可以使用 XML 配置 ? 19、什么是 YAML?...25、比较一下 Spring Security 和 Shiro 各自的优缺点 ? 26、Spring Boot 中如何解决跨域问题 ? 27、Spring Boot 中的监视器是什么?...ID 使用 ENUM 而不是 VARCHAR 避免 SELECT * 尽可能的使用 NOT NULL 从 PROCEDURE ANALYSE() 取得建议 如何做到无缓冲的查询?...,那么是 15 InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行 OPTIMIZE 操作,都会导致最大 ID 丢失 由于篇幅有限,获取完整面试题和答案解析可以转发后关注公众号...什么是DispatcherServlet 什么是Spring MVC框架的控制器? SpringMvc 中函数的返回值是什么? SpringMvc 用什么对象从后台向前台传递数据的?

1.8K22
  • MyBatisPlus之多数据源

    MyBatisPlus之多数据源 1.0 MyBatisPlus之多数据源 适用于多种场景:纯粹多库、 读写分离、 一主多从、 混合模式等 场景说明: 我们创建两个库,分别为:mybatis_plus(...以前的库不动)与mybatis_plus_1(新建),将mybatis_plus库的product表移动到mybatis_plus_1库,这样每个库一张表,通过一个测试用例分别获取用户数据与商品数据,如果获取到说明多库模拟成功...1.创建数据库及表 创建数据库mybatis_plus_1和表`product CREATE DATABASE `mybatis_plus_1` /*!...2.0 添加测试数据 INSERT INTO product (id, NAME, price) VALUES (1, '外星人笔记本', 100); 3.0 删除mybatis_plus库中的product...提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。 提供 自定义数据源来源 方案(如全从数据库加载)。

    18110

    jdbc java_Springdata

    从入门到入土 刚进公司,人生地不熟,偷偷藏着本《mybatis入土为安》,以为可以靠mybatis混的轻松点,谁知天有不测风云,大家用的是JPA。 啥是JPA?...创建数据库和表 复习一下oracle建数据库和表的操作吧 1.创建数据库 Jpa支持mySQL和Oracle数据库,这里使用Oracle做例子 mysql数据库也就实体类的主键声明和使用的桥接器不同,之后的章节会做具体解释...这一点比mybatis做的好,不过你要硬说mybatis-plus牛逼我也没办法。 数据访问层(dao)被确确实实的优化的很简便,这是spring-data-jpa很大的亮点。...简单借用晨瑞大佬文章中的解释: GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。...DELETE /zoos/ID:删除此ID的动物园信息 GET /zoos/ID/animals:获取此ID动物园的所有动物 DELETE /zoos/ID/animals/ID:删除ID(前者)动物园的

    1K10

    Spring Boot集成MyBatis的2种方式

    因此,我想把如何在Spring Boot中使用MyBatis进行一个系统性的总结,希望能有一些参考价值。...第一部分说明最基础的默认集成方式,能实现在Spring Boot中使用MyBatis作为ORM插件的基本功能;第二部分说明如何在Spring Boot中对MyBatis进行高级定制。...Spring容器中 其实上述这些默认配置就是我们在原生集成MyBatis方式中做的事情,只不过在Spring Boot中通过插件MyBatis-Spring-Boot-Starter自动完成了。...只要理解了这一点,就会明白如何在Spring Boot中灵活使用MyBatis组件了。 既然MyBatis的配置已经完成了,那么下一步的工作就是如何编写和使用接口映射器。...高级定制 定制MyBatis运行时参数 在Spring Boot中对MyBatis进行定制主要是指在Spring Boot的配置文件中(如:application.yaml)对MyBatis运行参数进行自定义配置

    9.7K20

    数据库之-元数据 DatabaseMetaData 初学

    \spring\boot\mybatis-spring-boot-autoconfigure\2.1.0\mybatis-spring-boot-autoconfigure-2.1.0.jar;D:\工作磁盘...* schema - 表所在的模式名称(oracle中对应于Tablespace);""表示获取没有模式的列,null标识获取所有模式的列; 可包含单字符通配符("_"),或多字符通配符("%");...* schema - 表所在的模式名称(oracle中对应于Tablespace);""表示获取没有模式的列,null标识获取所有模式的列; 可包含单字符通配符("_"),或多字符通配符("%");...* schema - 表所在的模式名称(oracle中对应于Tablespace);""表示获取没有模式的列,null标识获取所有模式的列; 可包含单字符通配符("_"),或多字符通配符("%");...* schema - 表所在的模式名称(oracle中对应于Tablespace);""表示获取没有模式的列,null标识获取所有模式的列; 可包含单字符通配符("_"),或多字符通配符("%");

    10000

    Spring Boot从零入门8_mybatis + druid + mysql + workbench + docker 入门

    在 Spring Boot 中,我们借助阿里开源的优秀的数据库连接池 Druid,结合业内优秀的持久层框架 MyBatis ,从零一步步实现一个比较全的 Demo。...本文尽量从零去理解、去学习如何使用 Druid 和 MyBatis,有广度,无深入,此为第一篇,后续会写包括如使用 MyBatis 代码生成器 MyBatis Generator 以及 Druid、MyBatis...中的 id 就是我们映射接口类中方法名,返回结果就是 User DO 类型。...3.2.5 映射器发现和 MyBatis 相关配置 上面已经将对象关系映射都写好了,在 Spring Boot 中想要实例化我们的映射接口,还需要配置映射器发现,另外让程序找到映射文件,也需要配置 MyBatis...4 小结 从零学习 Spring Boot,本文从比较广的角度去了解了 Spring 数据库相关的概念,入门数据库连接池 Druid 以及数据库持久层框架 MyBatis。

    1.4K20

    深入探讨:Spring与MyBatis中的连接池与缓存机制

    本文将深入探讨Spring和MyBatis中的连接池和缓存机制,从基本概念到高级应用,全面覆盖这两个框架中的性能优化技术。...1.1.1 连接池的基本原理 连接池通过预先创建一定数量的数据库连接并维护一个连接的池子,当应用程序需要访问数据库时,从池中借用连接,用完后再归还给池。这样减少了创建和关闭连接的开销。...Boot中的连接池配置 Spring Boot简化了连接池的配置,开发者可以在application.properties或application.yml文件中进行配置。...=localhost spring.redis.port=6379 2.2.5 Spring Boot中的缓存配置 Spring Boot简化了缓存的配置,通过application.properties...2.3.1 MyBatis一级缓存 MyBatis的一级缓存是SqlSession级别的缓存,在同一个SqlSession中执行相同的查询会从缓存中获取数据。

    28810

    教你十分钟构建好 SpringBoot + SSM 框架

    而本文,我将教大家如何在 intellij idea 中快速构建好一个 Maven + Spring + SpringMVC + MyBatis + SpringBoot 的框架,做到了足够精简,让你可以立刻开始你的...创建项目 选择 Spring Initiallizr ? 添加最基本的几个依赖 Web,MySQL,MyBatis,其他需求可以后续再添加 ; 数据库选择了 MySQL ? 二....配置数据源 数据源中存储了所有建立数据库连接的信息 1. 配置 IDEA 数据源 输入地址,端口,用户名,密码等等完成设置 ? 2....Drivername,如 oracle 数据库的 oracle.jdbc.driver.OracleDriver,MySQL 数据库为 com.mysql.jdbc.Driver 三....配置 typeAliasesPackage 可以使得 com.swit.model 包内的实体类可以在映射文件中使用别名,如: id="getUser" parameterType="

    62000

    教你十分钟构建好 SpringBoot + SSM 框架

    而本文,我将教大家如何在 intellij idea 中快速构建好一个 Maven + Spring + SpringMVC + MyBatis + SpringBoot 的框架,做到了足够精简,让你可以立刻开始你的...创建项目 选择 Spring Initiallizr 添加最基本的几个依赖 Web,MySQL,MyBatis,其他需求可以后续再添加 ; 数据库选择了 MySQL 二....配置数据源 数据源中存储了所有建立数据库连接的信息 1. 配置 IDEA 数据源 输入地址,端口,用户名,密码等等完成设置 2....Drivername,如 oracle 数据库的 oracle.jdbc.driver.OracleDriver,MySQL 数据库为 com.mysql.jdbc.Driver 三....配置 typeAliasesPackage 可以使得 com.swit.model 包内的实体类可以在映射文件中使用别名,如: id="getUser" parameterType="

    62740

    玩转 Spring Boot 集成篇(@Scheduled、静态、动态定时任务)

    在日常项目研发中,定时任务可谓是必不可少的一环。本次主要借助 Spring Boot 来谈谈如何实现定时任务。 1. 静态定时任务 所谓静态定时任务是指应用跑起来后,任务的执行时间无法进行动态修改。...Spring 会从指定的线程池中获取新线程来执行方法,@Async("name") 会用指定 name 的线程池来处理。...; * 步骤3:数据库中配置任务执行的具体时间规则,记住任务名称 * 步骤4:根据任务名称从数据库获取 Cron 参数,设置任务触发器,触发任务执行。...引入依赖以及相关配置 主要是完成从数据库查询指定任务名称对应的定时配置,实现方式会有很多种,不要局限于本文提及的 JPA,可参考历史分享《玩转 Spring Boot 集成篇(MyBatis、JPA、事务支持...历史系列文章: 玩转 Spring Boot 入门篇 玩转 Spring Boot 集成篇(MySQL、Druid、HikariCP) 玩转 Spring Boot 集成篇(MyBatis、JPA、

    1.4K21

    一个C#开发编写Java框架的心路历程

    项目框架:Spring。 JDK:1.8。 ORM:Mybatis。 首先我们创建一个Spring的Web项目——k_framework,C#开发可以参考:一个C#开发者重温Java的心路历程。...mybatis-spring-boot-starter:一个mybatis工作组为了spring单独开发的包,他让spring框架使用mybatis更简单,springBoot,springCloud等框架都可以用...mybatis-plus:一个基于mybatis的扩展包,拥有一些在mapper创建后,会自带一些基础的增删改查的方法。...mybatis-plus-boot-starter:mybatis-plus工作组为了spring单独开发的包,,他让spring框架使用mybatis-plus更简单,springBoot,springCloud...: mapper-locations: classpath:mapper/**/*.xml 代码中配置了Spring节点下的数据源,配置为Oracle并设置链接账户密码;还配置了mybatis节点下的映射路径

    1K10

    MybatisPlus

    +MP、Spring Boot+Mybatis+MP。...,常常解决的问题有2个: 1、对象中的属性名和字段名不一致的问题(非驼峰) 2、对象中的属性字段在表中不存在的问题 使用: 其他用法,如大字段不加入查询字段: 效果: 更新操作...前面我们已经知道,MP在启动后会将BaseMapper中的一系列的方法注册到meppedStatements中,那么究竟是如 何注入的呢?...主键Sequence 在mysql中,主键往往是自增长的,这样使用起来是比较方便的,如果使用的是Oracle数据库,那么就不能使用自增 长了,就得使用Sequence 序列生成id值了。...=oracle #id生成策略 mybatis-plus.global-config.db-config.id-type=input 配置序列 使用Oracle的序列需要做2件事情: 第一,需要配置MP

    58410

    Spring Boot整合MyBatis Plus实现基本CRUD与高级功能

    引言 Spring Boot是一款用于快速构建Spring应用程序的框架,而MyBatis Plus是MyBatis的增强工具,提供了许多方便实用的功能,包括基本CRUD操作、自动填充、乐观锁、逻辑删除等...本文将详细介绍如何在Spring Boot项目中整合MyBatis Plus,并展示其基本CRUD功能以及高级功能的实现方式。 2....项目搭建与依赖配置 首先,确保你已经搭建好了Spring Boot项目。接下来,我们需要添加MyBatis Plus的依赖。...总结 通过本文的介绍,我们学习了如何在Spring Boot项目中整合MyBatis Plus,并实现了基本的CRUD功能以及高级功能如自动填充、乐观锁、逻辑删除等。...希望通过本文的学习,读者能够更加熟练地使用Spring Boot和MyBatis Plus进行项目开发。

    20800
    领券