mybatis调用存储过程实例及经验(springboot+mybatis+oracl)

本文记录了在SpringBoot项目中使用MyBatis调用Oracle存储过程的过程,包括存储过程的基本介绍、如何在PL/SQL中测试、MyBatis的XML配置以及处理输入输出参数的方法。在实际操作中,需要注意确保拥有足够的权限,并避免出现PLS-00904错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次的项目,要求我用java代码调用存储过程,折腾了好久。最后总算成功了。发片帖子纪念下,也给不懂存储过程的但是要调用的人一些提示

首先介绍下存储过程(本人是不会写的,但是目前能看懂)

create or replace procedure P_DAP_UNI_CUBE_INFO(V_CUBE_NAME   IN VARCHAR2,   --每个参数都有三部分  形参 in/out 类型, in是入参 ,out是返回的参数
                                                                                            V_TABLE_NAME IN VARCHAR2,
                                                                                            V_RETCODE    OUT VARCHAR2,
                                                                                            V_RETINFO    OUT VARCHAR2) is /看括号里面的参数
/*
*************************************************************************  后面不用看了我就粘了一半,反正不是我写的
      *名    称 --%@NAME:  P_DAP_UNI_CUBE_INFO
      *功能描述 --%@COMMENT:
      *执行周期 --%@PERIOD:
      *参    数 --%@PARAM:ACCT_MONTH   帐期 YYMMDD
      *参
### 如何在Spring Boot中使用MyBatis-Plus连接和操作Oracle数据库 #### 1. 添加依赖项 为了使 Spring Boot 能够与 Oracle 数据库协同工作并利用 MyBatis-Plus 的特性,在 `pom.xml` 文件内需加入特定的依赖声明。除了引入基础的 Spring Boot 和 MyBatis-Plus 组件外,还需添加针对 Oracle JDBC 驱动的支持。 ```xml <dependencies> <!-- 引入 Spring Boot Starter 父工程 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>${latest-springboot-version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- MyBatis Plus Starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis.plus.version}</version> </dependency> <!-- Oracle Driver --> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>${oracle.driver.version}</version> </dependency> </dependencies> ``` 上述代码片段展示了如何通过 Maven 来管理这些必要的依赖关系[^2]。 #### 2. 配置数据源属性 接下来是在应用程序配置文件 (`application.properties`) 中定义用于访问 Oracle 数据库的数据源参数: ```properties # DataSource Configurations for Oracle Database spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orclpdb spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=oracle.jdbc.OracleDriver # MyBatis Plus Configuration mybatis-locations=classpath*:mapper/*.xml mybatis-plus.typeAliasesPackage=com.example.demo.entity ``` 这里指定了连接到本地运行的一个名为 "orclpdb" 的 Oracle 实例所需的 URL、用户名以及密码等信息;同时也设置了 MyBatis-Plus 映射器的位置及其对应的实体类包路径[^3]。 #### 3. 创建 Mapper 接口 创建一个继承自 BaseMapper<T> 的接口来表示持久化逻辑层中的 DAO (Data Access Object),这可以简化 CRUD 操作而无需编写额外 SQL 语句。 ```java package com.example.demo.mapper; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.demo.entity.UserEntity; @Mapper public interface UserMapper extends BaseMapper<UserEntity> { } ``` 此段 Java 代码展示了一个简单的用户表映射接口实例,它允许开发者轻松地执行基本增删改查命令[^1]。 #### 4. 开发 Service 层和服务控制器 最后一步就是构建服务层(Service Layer)以封装业务规则,并开发 RESTful API 控制器(Controller)以便外部调用者能够交互式地操纵存储于 Oracle 数据库内的资源。 ```java @Service public class UserService { @Autowired private UserMapper userMapper; public List<UserEntity> getAllUsers() { return userMapper.selectList(null); } } @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping("") public ResponseEntity<List<UserEntity>> getUsers() { final var users = userService.getAllUsers(); return new ResponseEntity<>(users, HttpStatus.OK); } } ``` 这段示例说明了怎样设计一个获取所有用户的 HTTP GET 请求处理器方法。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值