詳解java調(diào)用存儲過程并封裝成map
更新時間:2017年09月05日 15:02:50 作者:wjch_111
這篇文章主要介紹了詳解java調(diào)用存儲過程并封裝成map的相關資料,希望通過本文能幫助到大家實現(xiàn)這樣的功能,需要的朋友可以參考下
詳解java調(diào)用存儲過程并封裝成map
本文代碼中注釋寫的比較清楚不在單獨說明,希望能幫助到大家,
實例代碼:
public List<Map<String , Object>> doCallProcedure(String procedureString,String[] parameters) throws PersistentDataOperationException { if (!isReady ()) { throw new PersistentDataOperationException( "DAO is not ready."); } ResultSet rs = null; List<Map< String, Object>> list = new ArrayList<Map<String ,Object>>(); try { Connection con=session.connection(); String procedure = "{call "+procedureString+ "(?,?,?) }"; //拼裝調(diào)用存儲過程字符串 CallableStatement cstmt = con.prepareCall (procedure ); //調(diào)用存儲過程 cstmt.setString (1,parameters [0 ]); //設置入?yún)? cstmt.setInt (2, Integer. parseInt( parameters[ 1])) ;//設置入?yún)? cstmt.registerOutParameter (3, oracle.jdbc.OracleTypes.CURSOR ); //設置出參 cstmt.execute (); //執(zhí)行提交 rs = (ResultSet ) cstmt.getObject (3 ); //獲取出參,3為參數(shù)順序數(shù) ResultSetMetaData rsm =rs.getMetaData (); //獲得列集 Map< String, Object> map= null; int col = rsm.getColumnCount (); //獲得列的個數(shù) String colName [] = new String[ col] ;//列名集合 for (int i = 0; i < col; i++) { colName [i ] = rsm.getColumnName (i+1 ); } while( rs.next()){ //注意訪問結(jié)果集是從索引位置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; }
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:
- Java Spring動態(tài)生成Mysql存儲過程詳解
- MyBatis創(chuàng)建存儲過程的實例代碼_動力節(jié)點Java學院整理
- Java調(diào)用Oracle存儲過程詳解
- Java實現(xiàn)調(diào)用MySQL存儲過程詳解
- 詳解Java的JDBC API的存儲過程與SQL轉(zhuǎn)義語法的使用
- java編程調(diào)用存儲過程中得到新增記錄id號的實現(xiàn)方法
- Java調(diào)用MySQL存儲過程并獲得返回值的方法
- java調(diào)用mysql存儲過程實例分析
- Java中調(diào)用SQL Server存儲過程詳解
- java調(diào)用oracle分頁存儲過程示例
- java調(diào)用Oracle存儲過程的方法實例
- Java下使用Oracle存儲過程(詳解)
- Java存儲過程調(diào)用CallableStatement的方法
相關文章
SpringBoot如何實現(xiàn)Tomcat自動配置
這篇文章主要介紹了SpringBoot如何實現(xiàn)Tomcat自動配置,幫助大家更好的理解和學習使用SpringBoot框架,感興趣的朋友可以了解下2021-03-03java使用POI實現(xiàn)html和word相互轉(zhuǎn)換
這篇文章主要為大家詳細介紹了java使用POI實現(xiàn)html和word的相互轉(zhuǎn)換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12Java攔截器Interceptor實現(xiàn)原理及代碼示例
本文詳細講解了Java攔截器Interceptor實現(xiàn)原理及代碼示例,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實踐
這篇文章主要給大家介紹了關于利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實踐,Mybatis-Plus可以很方便地處理JSON字段,在實體類中可以使用@JSONField注解來標記JSON字段,需要的朋友可以參考下2024-07-07SpringBoot之bootstrap和application的區(qū)別解讀
這篇文章主要介紹了SpringBoot之bootstrap和application的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03mybatis報錯元素內(nèi)容必須由格式正確的字符數(shù)據(jù)或標記組成異常的解決辦法
今天小編就為大家分享一篇關于mybatis查詢出錯解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12