詳解java調(diào)用存儲(chǔ)過(guò)程并封裝成map
詳解java調(diào)用存儲(chǔ)過(guò)程并封裝成map
本文代碼中注釋寫(xiě)的比較清楚不在單獨(dú)說(shuō)明,希望能幫助到大家,
實(shí)例代碼:
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)用存儲(chǔ)過(guò)程字符串 CallableStatement cstmt = con.prepareCall (procedure ); //調(diào)用存儲(chǔ)過(guò)程 cstmt.setString (1,parameters [0 ]); //設(shè)置入?yún)? cstmt.setInt (2, Integer. parseInt( parameters[ 1])) ;//設(shè)置入?yún)? cstmt.registerOutParameter (3, oracle.jdbc.OracleTypes.CURSOR ); //設(shè)置出參 cstmt.execute (); //執(zhí)行提交 rs = (ResultSet ) cstmt.getObject (3 ); //獲取出參,3為參數(shù)順序數(shù) ResultSetMetaData rsm =rs.getMetaData (); //獲得列集 Map< String, Object> map= null; int col = rsm.getColumnCount (); //獲得列的個(gè)數(shù) String colName [] = new String[ col] ;//列名集合 for (int i = 0; i < col; i++) { colName [i ] = rsm.getColumnName (i+1 ); } while( rs.next()){ //注意訪問(wèn)結(jié)果集是從索引位置1開(kāi)始的,而不是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; }
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java Spring動(dòng)態(tài)生成Mysql存儲(chǔ)過(guò)程詳解
- MyBatis創(chuàng)建存儲(chǔ)過(guò)程的實(shí)例代碼_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解
- Java實(shí)現(xiàn)調(diào)用MySQL存儲(chǔ)過(guò)程詳解
- 詳解Java的JDBC API的存儲(chǔ)過(guò)程與SQL轉(zhuǎn)義語(yǔ)法的使用
- java編程調(diào)用存儲(chǔ)過(guò)程中得到新增記錄id號(hào)的實(shí)現(xiàn)方法
- Java調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法
- java調(diào)用mysql存儲(chǔ)過(guò)程實(shí)例分析
- Java中調(diào)用SQL Server存儲(chǔ)過(guò)程詳解
- java調(diào)用oracle分頁(yè)存儲(chǔ)過(guò)程示例
- java調(diào)用Oracle存儲(chǔ)過(guò)程的方法實(shí)例
- Java下使用Oracle存儲(chǔ)過(guò)程(詳解)
- Java存儲(chǔ)過(guò)程調(diào)用CallableStatement的方法
相關(guān)文章
SpringBoot如何實(shí)現(xiàn)Tomcat自動(dòng)配置
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)Tomcat自動(dòng)配置,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下2021-03-03Java數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解
在之前的學(xué)習(xí)中,我們主要了解了很多 Java 的 基本語(yǔ)法,但是在之后的 Java學(xué)習(xí)中,了解基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)的知識(shí)非常重要,數(shù)據(jù)結(jié)構(gòu)的思想可以幫助我們更加清晰明白的了解 Java 的解題思路等等.今天我們就來(lái)開(kāi)始學(xué)習(xí)實(shí)現(xiàn)一個(gè)Java基礎(chǔ)的單鏈表,需要的朋友可以參考下2021-05-05Java簡(jiǎn)單實(shí)現(xiàn)約瑟夫環(huán)算法示例
這篇文章主要介紹了Java簡(jiǎn)單實(shí)現(xiàn)約瑟夫環(huán)算法,簡(jiǎn)單描述了約瑟夫環(huán)問(wèn)題,并結(jié)合實(shí)例形式分析了Java實(shí)現(xiàn)約瑟夫環(huán)的具體操作技巧,需要的朋友可以參考下2017-09-09Maven項(xiàng)目分析剔除無(wú)用jar引用的方法步驟
這篇文章主要介紹了Maven項(xiàng)目分析剔除無(wú)用jar引用的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10java使用POI實(shí)現(xiàn)html和word相互轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了java使用POI實(shí)現(xiàn)html和word的相互轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Java攔截器Interceptor實(shí)現(xiàn)原理及代碼示例
本文詳細(xì)講解了Java攔截器Interceptor實(shí)現(xiàn)原理及代碼示例,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐
這篇文章主要給大家介紹了關(guān)于利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐,Mybatis-Plus可以很方便地處理JSON字段,在實(shí)體類(lèi)中可以使用@JSONField注解來(lái)標(biāo)記JSON字段,需要的朋友可以參考下2024-07-07SpringBoot之bootstrap和application的區(qū)別解讀
這篇文章主要介紹了SpringBoot之bootstrap和application的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03mybatis報(bào)錯(cuò)元素內(nèi)容必須由格式正確的字符數(shù)據(jù)或標(biāo)記組成異常的解決辦法
今天小編就為大家分享一篇關(guān)于mybatis查詢出錯(cuò)解決辦法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12