利用java如何调用存储过程

本篇文章给大家分享的是有关利用java如何调用存储过程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联公司专注于堆龙德庆网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供堆龙德庆营销型网站建设,堆龙德庆网站制作、堆龙德庆网页设计、堆龙德庆网站官网定制、微信小程序开发服务,打造堆龙德庆网络公司原创品牌,更为您提供堆龙德庆网站排名全网营销落地服务。

详解java调用存储过程并封装成map

           本文代码中注释写的比较清楚不在单独说明,希望能帮助到大家,

实例代码:

public List> doCallProcedure(String procedureString,String[] parameters) 
                   throws PersistentDataOperationException { 
             if (!isReady ()) { 
                   throw new PersistentDataOperationException( "DAO is not ready."); 
             } 
            ResultSet rs = null; 
            List> list = new ArrayList>(); 
             try { 
                   Connection con=session.connection(); 
                   String procedure = "{call "+procedureString+ "(?,?,?) }"; //拼装调用存储过程字符串 
                  CallableStatement cstmt = con.prepareCall (procedure ); //调用存储过程 
                  cstmt.setString (1,parameters [0 ]); //设置入参 
                  cstmt.setInt (2, Integer. parseInt( parameters[ 1])) ;//设置入参 
                  cstmt.registerOutParameter (3, oracle.jdbc.OracleTypes.CURSOR ); //设置出参 
                   
                  cstmt.execute (); //执行提交 
                  rs = (ResultSet ) cstmt.getObject (3 ); //获取出参,3为参数顺序数 
                  ResultSetMetaData rsm =rs.getMetaData (); //获得列集 
                  Map< String, Object> map= null; 
                   int col = rsm.getColumnCount ();  //获得列的个数 
                   String colName [] = new String[ col] ;//列名集合 
                   for (int i = 0; i < col; i++) { 
                        colName [i ] = rsm.getColumnName (i+1 ); 
                   } 
                   while( rs.next()){ 
                         //注意访问结果集是从索引位置1开始的,而不是0 
                        map = new HashMap< String, Object> (); 
                         for (int j = 0; j < colName.length; j++) { 
                              map.put (colName [j ], rs.getString (j+1 )); 
                         } 
                        list.add (map ); 
                   } 
                   session.flush (); 
             } catch (HibernateException e) { 
                   throw new PersistentDataOperationException( e) ; 
             } catch (SQLException e) { 
                  e.printStackTrace (); 
             } 
             return list; 
       } 

以上就是利用java如何调用存储过程,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


网站标题:利用java如何调用存储过程
文章起源:http://myzitong.com/article/ihogjh.html