【问题标题】:Calling a stored procedure from db2 database to java code using spring使用spring从db2数据库调用存储过程到java代码
【发布时间】: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());
        }

   }
}

【问题讨论】:

    标签: java spring stored-procedures db2


    【解决方案1】:

    在已共享的 java 代码中,我们需要使用 schema_name.proceure_name() 调用该过程,然后它才能工作。所以在共享的代码中只需更改int rs=jt.update("call sample.sample_pal(?)",name);

    其中sample 是模式名称,sample_pal 是过程名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      相关资源
      最近更新 更多