我程序预期是调用存储过程执行Update操作,表名需要传参数拼
最终版代码:
mapping.xml部分代码:
<select id="updateBrandAByBrand" statementType="STATEMENT"> <![CDATA[ {call BRAND_${_parameter}('${_parameter}')}]]> </select>
存储过程部分代码:
CREATE OR REPLACE PROCEDURE BRAND_A0101(tabname IN VARCHAR2) AS v_sql VARCHAR2(300); BEGIN v_sql:='update T_EXTERNAL_PRODS_TEMP_'||tabname||'_2 set BRANDNAME_A = TRIM(REPLACE(BRANDNAME,'' '','' '')) where BRANDNAME is not null'; EXECUTE IMMEDIATE v_sql; -- EXEC BRAND_A0101(v_num); END BRAND_A0101;
就为拼T_EXTERNAL_PRODS_TEMP_A0101_2这个表名,直接写 Update 拼表名貌似数据库会报错,需要转成字符串在执行,同时遇到第二个问题 后面单引号,解决的方式是2个单引号代表1个单引号转义 其实还可以用 char(39), select char(39) 结果也是 ‘
这样理解吧:
1、''是字符界定符,告诉SQL你输入的是字符,SQL已经知道@sitemtext是字符类型,所以不需要。
2、LIKE '%XXX%' 可以拆分为 '%' + 'XXX' + '%','XXX' = @sitemtext。
3、EXEC执行字符串:@sitemtext对于EXEC来说变量,但对于EXEC内部的字串指令来说,它是常量,在运行EXEC之前,@sitemtext必然有个确定值(比如@sitemtext='TEST'),如果用1点代替3点,则变成“……NID = TEST……”,那字串指令将TEST解析为对象名。
4、道理同上。
比较笨的方法(也是避免错误的最佳方法):
A、全部先不加点:
exec (declare mycursor cursor for select top @maxitems SID,NID,NTime from (select top @mycount * from V_PC_DOWNUPDATE where BName like '%@sitemtext+%') as MyTable order by NTime desc)
B、加首尾两点:
exec ('declare mycursor cursor for select top @maxitems SID,NID,NTime from (select top @mycount * from V_PC_DOWNUPDATE where BName like '%@sitemtext+%') as MyTable order by NTime desc')
C、给字串指令解析为数字的变量加1点:
exec ('declare mycursor cursor for select top ' + @maxitems + ' SID,NID,NTime from (select top ' + @mycount + ' * from V_PC_DOWNUPDATE where BName like '%@sitemtext+%') as MyTable order by NTime desc')
C、给字串指令解析为字符的变量加3点:
exec ('declare mycursor cursor for select top ' + @maxitems + ' SID,NID,NTime from (select top ' + @mycount + ' * from V_PC_DOWNUPDATE where BName like ''%' + @sitemtext + '%'') as MyTable order by NTime desc')
D、检查在()里面,除了变量和“+”号,全部变成红色。多写你就会很熟练,直接写出来都可以了,不用那么麻烦。
相关推荐
至此,我们就完成了Spring Boot整合MyBatis调用Oracle存储过程并处理游标返回数据的过程。在实际开发中,可以根据需求调整存储过程的逻辑和结果处理方式,以满足各种复杂业务场景。注意,对于大数据量的查询,使用...
在本项目中,Oracle作为数据存储的后端,与Spring MVC和MyBatis进行交互,完成数据的增删改查操作。 **Web实现**: 在Web层面上,项目可能使用了HTML、CSS和JavaScript等技术构建用户界面,并通过HTTP协议与服务器...
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载
在IT行业中,构建一个完整的应用程序框架是开发过程中的重要步骤,尤其对于企业级应用来说更是如此。本项目采用的是Spring、SpringMVC、Mybatis、Oracle数据库和Redis缓存技术,构建了一个高效、稳定的系统架构。...
【标题】"spring+springmvc+mybatis搭建的酒店管理系统附带mysql数据库"涉及的核心技术是Java企业级开发中的Spring框架、SpringMVC模块以及MyBatis持久层框架,同时结合了MySQL数据库来存储和管理数据。这个项目是...
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在本项目中,MyBatis作为数据访问层,用于处理与数据库的交互,包括查询、...
- MyBatis是一个持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 - 配置MyBatis,需要在Spring Boot中添加MyBatis starter依赖,并在配置...
在Java开发领域,Eclipse是常用的集成开发环境(IDE),Oracle是知名的关系型数据库管理系统,而Mybatis则是一个优秀的持久层框架。这个压缩包“eclipse+Oracle+Mybatis源代码(可用)”提供了一个基础的Java项目示例...
在Spring和MyBatis的集成中,通过MyBatis的SqlSession对象可以调用存储过程。Oracle存储过程是一组预编译的SQL语句,可以在数据库服务器端执行,提供更好的性能和安全性。 1. **无返回值的存储过程**: 当存储过程...
标题 "29、springmvc+spring+mybatis+oracle12的demo" 暗示了一个集成开发环境的示例,其中涵盖了四个关键组件:Spring MVC(Spring的模型视图控制器框架)、Spring(核心Java企业级应用框架)、MyBatis(持久层框架...
在Java Web开发中,Spring MVC、Spring和MyBatis是常用的三大框架,它们结合Oracle数据库构建了一种高效、灵活的企业级应用解决方案。本压缩包包含了这些框架与Oracle数据库交互所需的jar包,下面是关于这些框架和...
在这个项目中,Oracle作为后端存储,保存并处理所有的业务数据。MyBatis通过JDBC驱动与Oracle数据库进行通信,执行SQL语句。 项目实施流程可能包括以下几个步骤: 1. 配置Maven环境,添加项目依赖。 2. 设计数据库...
在这个基于SpringBoot和MyBatis的项目中,我们还引入了Oracle数据库和Thymeleaf模板引擎,使得整个系统具备了完整的数据存储和前端展示能力。 首先,SpringBoot是Spring框架的一个简化版本,它内置了Tomcat服务器,...
MyBatis作为一款流行的Java持久层框架,提供了调用存储过程的功能。下面将详细介绍如何在MyBatis中配置和使用存储过程。 ### 1. 配置MyBatis XML映射文件 在MyBatis的映射文件(mapper.xml)中,我们需要为存储...
Mybatis调用Oracle存储过程的方法详解 Mybatis是一款流行的持久层框架,广泛应用于Java企业级应用开发中。 Oracle存储过程是一种高效的数据库操作方式,通过存储过程可以实现复杂的业务逻辑操作。那么,如何使用...
数据库是系统存储数据的地方,这里可能使用的是MySQL、Oracle或其他关系型数据库。Mybatis通过XML配置文件或注解方式定义SQL语句,实现了数据库操作的动态映射。在学生管理系统中,数据库可能包含"学生"、"课程"等表...
4. **Oracle** 数据库:作为后端存储,Oracle 提供了强大的数据库管理功能,支持事务处理、并发控制和复杂的查询。MyBatis 通过 JDBC 与 Oracle 数据库交互,执行 SQL 语句。 在这个项目中,`webserviceserver` ...
MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...
SSMHR是一个基于SpringMVC、Spring和Mybatis的Oracle数据库驱动的人力资源管理系统,用于实现CRUD(创建、读取、更新、删除)操作。这个项目的核心是整合这三个技术来构建一个高效、灵活的后端框架,适用于企业级...