寫了存儲過程就必須會調用,不然用來干嘛勒
存儲過程--查詢用戶姓名,年齡,月薪
create or replace PRocedure queryuserinfo(pid in number,pname out VARCHAR2,page out NUMBER,pmoney out VARCHAR2)asbeginselect name,age,money into pname,page,pmoney from tb_user where id = pid;end;Oracle連接--JDBCUtilpackage jdbc.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCUtils { private static String driver = "oracle.jdbc.OracleDriver"; private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; private static String user = "xhs"; private static String passWord = "123456"; // 注冊數據庫的驅動 static { try { Class.forName(driver); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } // 獲取數據庫連接 public static Connection getConn() { try { return DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } return null; } // 釋放數據庫資源 public static void release(Connection conn, Statement st, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { rs = null; } } if (st != null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { st = null; } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } finally { conn = null; } } }}調用:package jdbc.test;import java.sql.CallableStatement;import java.sql.Connection;import org.junit.Test;import jdbc.utils.JDBCUtils;import oracle.jdbc.driver.OracleTypes;public class testProcedure {@Testpublic void testUserProcedure(){ String sql = "{call queryuserinfo(?,?,?,?)}"; Connection conn=null; CallableStatement call =null; try { conn=JDBCUtils.getConn(); call=conn.prepareCall(sql); call.setInt(1, 25); call.registerOutParameter(2, OracleTypes.VARCHAR); call.registerOutParameter(3, OracleTypes.NUMBER); call.registerOutParameter(4, OracleTypes.VARCHAR); call.execute(); String name = call.getString(2); String age = call.getString(3); String money = call.getString(4); System.out.println(name+"的年齡是"+age+"月薪是"+money); } catch (Exception e) { e.printStackTrace(); }finally{ JDBCUtils.release(conn, call, null); }}}oracle的jdbc jar包:鏈接:http://pan.baidu.com/s/1kVc8ipL 密碼:unbz
新聞熱點
疑難解答