使用spring从db2数据库调用存储过程到java代码
Posted
技术标签:
【中文标题】使用spring从db2数据库调用存储过程到java代码【英文标题】:Calling a stored procedure from db2 database to java code using spring 【发布时间】:2014-08-07 10:59:33 【问题描述】:我正在尝试从 Java 代码调用存储过程。过程在 DB2 中运行良好,但是当我使用 Spring 应用它并运行 java 代码时,它没有插入我在存储过程中编写逻辑的记录。
DB2 中的存储过程代码:
CREATE PROCEDURE MFAA.sample_pal(
IN Stmt varchar(2048)
)
LANGUAGE SQL
BEGIN
-- declare Stmt varchar(2048);
-- set Stmt = 'PALLAVI';
-- print Stmt;
-- select Stmt;
--DBMS_OUTPUT.PUT_LINE('Value : '||Stmt);
insert into MFAA.DUMMYTABLE values(Stmt);
return 0;
END
java代码:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import java.util.*;
public class callprocedure
private JdbcTemplate jdbctemplate;
private SimpleJdbcCall jdbcCall;
public JdbcTemplate getJdbctemplate()
ApplicationContext cx=new ClassPathXmlApplicationContext("db2Context.xml");
this.jdbctemplate=(JdbcTemplate) cx.getBean("jdbcTempDB2");
return jdbctemplate;
public void setJdbctemplate(JdbcTemplate jdbctemplate)
this.jdbctemplate = jdbctemplate;
//this.jdbcCall= new SimpleJdbcCall(jdbctemplate).withProcedureName("sample_pal");
public static void main(String[] args)
String name="Pradeep";
try
JdbcTemplate jt=new DbConnection().getJdbctemplate();
System.out.println("CALL STORED PROCEDURES");
int rs=jt.update("call sample_pal(?)",name);
System.out.println("Result : "+rs);
catch(Exception e)
System.out.println(e.getMessage());
【问题讨论】:
【参考方案1】:在已共享的 java 代码中,我们需要使用 schema_name.proceure_name() 调用该过程,然后它才能工作。所以在共享的代码中只需更改int rs=jt.update("call sample.sample_pal(?)",name);
其中sample
是模式名称,sample_pal
是过程名称
【讨论】:
以上是关于使用spring从db2数据库调用存储过程到java代码的主要内容,如果未能解决你的问题,请参考以下文章