Java代码中调用Oracle存储过程

1552阅读 0评论2008-06-01 zhu_xianfeng
分类:Java

1. 建表及创建存储过程

conn scott/tiger

create table student(
    id number(15) primary key,
    name nvarchar(50) not null
);

create or replace procedure get_name(student_id in number, student_name out varchar)
is
begin
    select name into student_name from student where id = student_id;
end;

commit;


2. Java代码

package com.dlut.zxf.test;

import java.sql.*;

public class Test {
    public static void main(String[] args) {
        String classDriver = "oracle.jdbc.driver.OracleDriver";
        String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";
        String user = "scott";
        String password = "tiger";
        
        Connection conn = null;        
        CallableStatement state = null;        

        try {
            Class.forName(classDriver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            conn = DriverManager.getConnection(dbURL, user, password);
            state = conn.prepareCall("{call scott.get_name(?, ?)}");
            state.setString(1, "200592338");
            state.registerOutParameter(2, Types.VARCHAR);
            state.execute();
            System.out.println(state.getString(2));
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

上一篇:PL/SQL集合
下一篇:解决Hibernate连接MySQL中文乱码问题