源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java调用Oracle存储过程的方法实例

  • 时间:2022-07-12 20:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java调用Oracle存储过程的方法实例
 [b]1.测试添加数据的procedure [/b]
[u]复制代码[/u] 代码如下:
public void testProcedure() {         Connection con = getConnction();         // **1.测试添加数据的procedure           String procedure = "{call users_insert_proc(?,?,?,?) }";         CallableStatement cs = null;         try {              cs = con.prepareCall(procedure);              cs.setInt(1, 123450);              cs.setString(2, "xxiaox");              cs.setString(3, "Ww342864");              cs.setString(4, "742621646@qq.com");              } catch (SQLException e) {               e.printStackTrace();         }         try {              cs.executeUpdate();         } catch (SQLException e) {                e.printStackTrace();         }     }
[b]2.测试删除数据的procedure[/b]
[u]复制代码[/u] 代码如下:
public void testDelPro() {         Connection con = getConnction();         // **2.测试删除数据的procedure          String procedure = "{call delete_usersbyid_proc(?) }";         CallableStatement cs = null;         try {              cs = con.prepareCall(procedure);                       cs.setInt(1, 123450);              } catch (SQLException e) {               e.printStackTrace();         }         try {              cs.executeUpdate();         } catch (SQLException e) {                e.printStackTrace();         }     }
[b]3.测试更新数据的procedure[/b]
[u]复制代码[/u] 代码如下:
public void testDelPro() {         Connection con = getConnction();         // **3.测试更新数据的procedure         String procedure = "{call users_updatebyId_proc(?,?,?,?) }";         CallableStatement cs = null;         try {              cs = con.prepareCall(procedure);          cs.setInt(1, 101);          cs.setString(2, "小第三方的浩");          cs.setString(3, "asdf342864");         cs.setString(4, "742621646@qq.com");              } catch (SQLException e) {               e.printStackTrace();         }         try {              cs.executeUpdate();         } catch (SQLException e) {                e.printStackTrace();         }     }
[b]4.测试查找数据的procedure[/b]       a)建包体       b)创建查询的procedure
[u]复制代码[/u] 代码如下:
create or replace package userspackage as type users_cursor is ref cursor; end  userspackage;
[u]复制代码[/u] 代码如下:
create or replace procedure users_packageAll( s_id in number ,u_cursor out userspackage.users_cursor) is begin    if s_id = 0 then        open u_cursor for select id,name,pword,email  from users;       else        open u_cursor for select id,name,pword,email  from users where id=s_id;       end if;   end;
c)Java调用
[u]复制代码[/u] 代码如下:
public void testDelPro() {         Connection con = getConnction();         // 返回查询procedure        String procedure = "{call users_packageAll(?,?) }";         CallableStatement cs = null;         try {              cs = con.prepareCall(procedure);                      cs.setInt(1, 0);      cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);              } catch (SQLException e) {               e.printStackTrace();         }         try {              cs.execute();               ResultSet rs = (ResultSet)cs.getObject(2);             while (rs.next()) {               System.out.println(rs.getInt(1) + " " + rs.getString(2));             }         } catch (SQLException e) {                e.printStackTrace();         }     }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部