您的位置:首页 > 编程语言 > Java开发

Java-数据库操作 过程proc、函数func调用

2017-04-08 17:13 537 查看
①java调用过程procedure

Connection ct = null;
CallableStatement cs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");

ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl",
"scott", "tiger");
cs = ct.prepareCall("{call pro5(?, ?)}");
cs.setString(1, "SMITH");
cs.setFloat(2, 456.7f);
cs.execute();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {

}


②java调用函数function

---  当作普通sql语句处理
String sql = "select fun1('SMITH') from dual";
ResultSet rs = SQLHelper.executeQuery(sql, null);


③java调用带有返回值的procedure过程

Class.forName("oracle.jdbc.driver.OracleDriver");
ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl",
"scott", "tiger");
cs = ct.prepareCall("{call pro1(?, ?)}");
cs.setString(1, "7900");
// 注册输出值        ------------------
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);

cs.execute();

// 取出输出值        ------------------
String ename = cs.getString(2);
System.out.println(ename);


④java调用带有返回值列表的procedure过程

Class.forName("oracle.jdbc.driver.OracleDriver");
ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl",
"scott", "tiger");
cs = ct.prepareCall("{call pro1(?, ?)}");
cs.setString(1, "10");
// 注册输出值
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);

cs.execute();

//取出输出值
rs = (ResultSet) cs.getObject(2);
while (rs.next()) {
System.out.println(rs.getString("ename") + " " + rs.getString("sal"));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: