JAVA通过调用数据库函数调用存储过程

来源:互联网 发布:手机淘宝设置发货地址 编辑:程序博客网 时间:2024/05/20 22:37

JAVA通过调用数据库函数调用存储过程

下面将举一个通过数据库函数来调用存储过程:

创建数据库函数存储过程

复制代码
CREATE OR REPLACE FUNCTION stu_proc ( v_id IN NUMBER) RETURN VARCHAR2 IS v_name VARCHAR2(20);BEGIN SELECT o.sname INTO v_name FROM student o WHERE o.id=v_id; RETURN v_name;EXCEPTION WHEN OTHERS THEN RETURN '数据未找到';END;
复制代码

               

JAVA通过调用数据库函数调用存储过程

复制代码
package com.ljq.test;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.SQLException;import java.sql.Types;public class ProceTest { public static void main(String[] args) throws Exception { Connection conn = null; CallableStatement statement = null; //?表示函数return的值, stu_proc是数据库函数名 //存储过程的out和in都是以参数传进,这就是函数和存储过程的区别之一 String sql = "{?=call stu_proc(?)}"; try { conn = ConnUtils.getConnection(); statement = conn.prepareCall(sql); statement.registerOutParameter(1, Types.VARCHAR); statement.setInt(2, 36); statement.execute(); //具体值或数据未找到 String msg=statement.getString(1); System.out.println(msg); } catch (SQLException e) { e.printStackTrace(); } finally { ConnUtils.free(null, statement, conn); } }}
复制代码
0 0