Java调用Oracle存储过程

简介:
Java调用Oracle存储过程
 
 
步骤:
1、编写Oracle存储过程;
2、编写数据库获取连接工具类;
3、编写简单应用调用存储过程。
 
 
实现:
 
1、Oracle存储过程
(省了,本文主要讲述怎么在java中调用存储过程)
在此假设此存储过程有三个参数,最后会返回一个游标。
 
2、数据库连接工具类
/**
 * 数据库连接工具类
 */
public class DBUtil {
    /**
     *  连接工厂
     */
    public static Connection makeConnection(){
        Connection conn = null;
        try {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace(); 
            }
            conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:zfvdb", "root", "zfvims");
        } catch (SQLException e) {
            System.out.println("通过JDBC获取Oralce数据库链接对象出错!");
            e.printStackTrace();
        }
        return conn;
    }
   
    /**
     *  连接测试
     */
    public static void  main(String args[]){
        if(DBUtil.makeConnection()==null){
            System.out.println("获取数据库链接失败!");
        }
        System.out.println("JDBC获取Oracle数据库链接成功!");
    }
}
 
3、调用存储过程
 
/**
 * 调用存储过程测试
 */
public class Test {
    /**
     *  测试方法
     */
    public void test(){
        Connection conn = DBUtil.makeConnection();
 
        String sql = "{call p_test(?,?,?)}";
        CallableStatement cs;
        try {
            cs = conn.prepareCall(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
            cs.setLong(1, "1300");
            cs.setString(2, "2006-01-01");
            cs.setString(3, "2007-01-01");
            ResultSet rs = cs.executeQuery();
            while (rs.next()) {
                //todo:进行相关操作
            }
            rs.close();
            cs.close();
        } catch (SQLException e) {
            System.out.println("调用存储过程p_test出现异常!");
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                System.out.println("发生不能关闭JDBC链接的异常,请检查!");
                e.printStackTrace();
            }
        }
 
    }
 
    public static void  main(String args[]){
        new Test().test();
    }
}
 
说明:Java调用其他数据库的存储过程方式和此例一样,存储过程有的不返回值,比如对数据库执行一些update、insert、delete等操作。这个时候调用有所不同。详细请参看J2SDK参考文档。
 

本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/32713,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 SQL Oracle
Oracle系列十五:存储过程
Oracle系列十五:存储过程
|
3月前
|
存储 Oracle Java
Java调用存储过程小结
Java调用存储过程小结
|
2月前
|
存储 算法 Java
[Java]散列表的数据结构以及对象在JVM堆中的存储过程
[Java]散列表的数据结构以及对象在JVM堆中的存储过程
52 1
[Java]散列表的数据结构以及对象在JVM堆中的存储过程
|
4月前
|
SQL Oracle 关系型数据库
java往oracle存clob类型的值时,字符长度过长怎么办?
java往oracle存clob类型的值时,字符长度过长怎么办?
67 1
|
3月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
34 0
|
3月前
|
存储 SQL Java
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(一)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
33 0
|
4月前
|
存储 SQL Oracle
|
5月前
|
SQL 存储 Oracle
Oracle如何使用PL/SQL调试存储过程
Oracle如何使用PL/SQL调试存储过程
100 0
|
SQL 存储 关系型数据库
Oracle存储过程介绍
存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在Or
2236 0
|
4天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
39 7

推荐镜像

更多