【JAVA使用】Mybatis Plus调用Oracle存储过程

DAO层

void方法,参数为待传入的对象

void checkFirst(DccfEntity dccfEntity);

注意:OUT返回的结果会直接更新到这个对象上

Mapper层

<select id="checkFirst" statementType="CALLABLE" parameterType="xxxxx">
		{
			call  YDJW_XD.p_check_fjdcxr_dccf
			(
				#{test1,jdbcType=VARCHAR,mode=IN}, #{test2,jdbcType=VARCHAR,mode=IN},
				#{testresult1,mode=OUT,jdbcType=VARCHAR}
			)

			}
	</select>

标签无所谓,用select、insert、update都可以,根据业务情况自定就行
注意一下 statementType=“CALLABLE”,这个代表用了存储过程
每个参数的mode都要跟存储过程一一对应,入参是IN,返回的是OUT

存储过程

存储过程大概意思是这样的,主要就看一下第一行的参数就行

create or replace procedure ydjw_xd.p_check_fjdcxr_dccf(test1 in varchar2,test2 varchar2, testresult1 out varchar2) is
    test1n number;
    test2n number;
    testM varchar2(1024);
  begin
   xxxxx具体逻辑xxxx
       commit;
       return;
  end p_check_fjdcxr_dccf;

主要踩过的坑

1. 参数和存储过程不一致

ORA-06553:PLS-306:wrong number or types of arguments in call to ‘’
可能会报这个错误
检查一下参数的数量和 类型 是否能对应的上

2. OUT的值没赋值

identifier ‘’ must be declared ORA-06550: line 1, column 7: PL/SQL: Statemen
可能会报这个错误
检查一下OUT是不是没给值,如果是varchar直接给个"1"都可以,存储过程成功后会更新

3. 没加schema

Hint: No function matches the given name and argument ty
可能会报这个错误
直接说没找到函数,如果是需要切换模式才能访问的话,需要前面加上格式
比如ydjw_xd.p_check_fjdcxr_dccf

4. 模式后的方法名不正确

ERROR: schema “ydjw_xd” does not exist
可能会报这个错误
不确定为什么方法名不会会报这个错误,出现这个错误的问题是开始时候把ydjw_xd.p_check_fjdcxr_dccf写成了ydjw_xd.“p_check_fjdcxr_dccf”,这个双引号导致的错误

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!关于使用mybatis-plus和oracle进行分页的问题,您可以参考以下步骤: 1. 在pom.xml文件中添加mybatis-plus和oracle的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>com.oracle.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> ``` 2. 在配置文件中配置mybatis-plus的分页插件: ```yaml mybatis-plus: mapper-locations: classpath*:mapper/*Mapper.xml global-config: db-config: id-type: auto table-capital: true column-capital: false logic-delete-value: 1 logic-not-delete-value: 0 logic-delete-field: delete_flag pageSize: 10 # 每页大小 page: 1 # 当前页 overflow: true # 是否溢出,如果为true,则返回最后一页,如果为false,则返回第一页 limit: 100 #最大分页限制 configuration: map-underscore-to-camel-case: true cache-enabled: false log-impl: org.apache.ibatis.logging.stdout.StdOutImpl plugins: - component: com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor ``` 3. 在mapper接口中定义查询方法,并且使用Page对象保存分页参数: ```java public interface UserMapper extends BaseMapper<User> { List<User> selectUserList(Page<User> page, @Param("search") String search); } ``` 4. 在service层中调用mapper接口的方法,同时传入页码和每页大小的参数: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> selectUserList(Page<User> page, String search) { return userMapper.selectUserList(page, search); } } ``` 使用以上方法可以轻松实现mybatis-plus和oracle的分页功能,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值