java代码调用数据库存储过程

由于前边有写java代码调用数据库,感觉应该把java调用存储过程也写一下,所以笔者补充该篇!

package testSpring;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleTypes;

public class Test1 {
   public static void main(String[] args) {
    Connection con=null;
    PreparedStatement pre=null;
    ResultSet res=null;
    CallableStatement call=null;
    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        String url="jdbc:oracle:thin:@192.168.224.87:1523:orcl";
        String userName="gb_report";
        String passWord="gb_report123$";
        System.out.println("连接数据库成功!");
        con=DriverManager.getConnection(url,userName,passWord);
        
        
        call=con.prepareCall("{call P_COMMON.QUERY_PROVINCE_PAGE(?,?,?,?,?,?,?,?,?,?,?)}");//P_COMMON为包名,QUERY_PROVINCE_PAGE为存储过程名,?代表参数
        call.registerOutParameter(4, OracleTypes.NUMBER);//参数下标为4及返回值的类型
        call.registerOutParameter(5, OracleTypes.NUMBER);
        call.registerOutParameter(7, OracleTypes.NUMBER);
        call.registerOutParameter(8, OracleTypes.INTEGER);
        call.registerOutParameter(9, OracleTypes.VARCHAR);
        call.registerOutParameter(10,OracleTypes.VARCHAR);
        call.registerOutParameter(11,OracleTypes.CURSOR);//注意这里返回值类型为游标
        
        call.setString(1, "");//参数下标为1,输入参数类型为varchar(java对应string)
        call.setString(2, "");
        call.setString(3, "");
        call.setString(6, "");
        
        //执行
        call.execute();
        
        res = (ResultSet)call.getObject(11);//接受参数下标为11的返回值为游标类型,用ResultSet
        while(res.next()){
            System.out.println("行政ID:"+res.getString("ITEMID")+";省份名称:"+res.getString("ITEMNAME")+";");
        }
        
    } catch (Exception e) {
        e.printStackTrace();
    }finally{
        
        try {
            if(res!=null){
                res.close();
            }else if(pre!=null){
                pre.close();
            }else if (con!=null) {
                con.close();
            }
            System.out.println("关闭连接!");
            
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }
  }
}

时间: 2024-10-06 17:42:00

java代码调用数据库存储过程的相关文章

java代码调用oracle存储过程

一.简介 与调用mysql存储过程类型过程都是如下 1.创建连接 Connection conn = DriverManager.getConnection(url, user, password); 2.创建CallableStatement CallableStatement statement = conn.prepareCall(sql); 3.设置参数 statement.setInt(1, id); statement.registerOutParameter(2, Types.VA

Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import

mysql创建 存储过程 并通过java程序调用该存储过程

create table users_ning(id primary key auto_increment,pwd int); insert into users_ning values(id,1234); insert into users_ning values(id,12345); insert into users_ning values(id,12); insert into users_ning values(id,123); CREATE PROCEDURE login_ning(

在java中调用Oracle存储过程

在java中调用Oracle存储过程 本文介绍如何通过java来调用Oracle的存储过程 1. 编写存储过程 CREATE OR REPLACE PROCEDURE sp_pro3(sp_name VARCHAR2,sp_sal NUMBER ) IS BEGIN --根据用户名修改工资 UPDATE emp SET sal=sp_sal WHERE ename=sp_name; END; 引入jdbc6.jar,编写测试类Test.java package testOraclePro; im

ubuntu下用java代码调用命令将java格式文件转换为html格式文件

首先我们应该在电脑上装上GNU Source-highlight 3.1.7,给个链接参考: http://www.gnu.org/software/src-highlite/#mozTocId120994 下面代码实现了 将java类型的代码转换为html文件类型的代码,如果java代码的文件名为 helloword.java,则转换为html格式的文件名为helloword.java.html,将java代码在浏览器上显示出来.其次我还将html文件中的内容提取出来,便于在html文件里编写

使用java代码调用exe程序 (包括参数传递)

使用Java代码调用exe 1使用场景 我现在使用eclipse+tomcat的架构建立了web server, 在这个web project中我需要建立一个定时任务,在定时任务中执行本地的一个C#工程生成的exe. 2Java代码 public class MyTask extends TimerTask { public void run() { System.out.println("call at " + (new Date())); // TODO æ­¤å¤?æ·»å? å

集算器调用数据库存储过程的代码示例

集算器可以方便的调用数据库的存储过程,这里通过例子来看一下具体的程序写法. 调用无返回值的存储过程 用oracle的存储过程为例,存储过程只有一个输入参数,没有输出参数: create orreplace procedure pro1 (pid IN VARCHAR) as begin insert into emp values(pid,'mike'); update emp set name='rose' where id=pid; commit; end; 在集算器中可以使用execute

JAVA调用数据库存储过程

1.首相给数据库创建一个简单的存储过程:(在这里我是创建的Oracle数据库的存储过程) create or replace procedure stu_upd(nname varchar2,npassword varchar2) isbegin update student set name=nname where password=npassword;end pl_pro; create or replace procedure stu_del(nid number)isbegin dele

java中调用数据库中的存储过程和函数

public static void main(String[] args) {         Connection conn =getConnection(url,user, pwd);         System.out.println("数据连接成功");         CallableStatement cs=null;         try         {    //调用数据库中的存储过程              cs = conn.prepareCall(&q