java使用mybatis調(diào)用存儲過程返回一個游標(biāo)結(jié)果集方式
更新時間:2024年01月27日 09:57:14 作者:瀚高PG實驗室
這篇文章主要介紹了java使用mybatis調(diào)用存儲過程返回一個游標(biāo)結(jié)果集方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
環(huán)境
- 系統(tǒng)平臺:IBM:Linux on System z Red Hat Enterprise Linux 7
- 版本:6.0,4.5
文檔用途
- mybatis調(diào)用存儲過程返回游標(biāo)接收結(jié)果集。
詳細(xì)信息
1.service實現(xiàn)類
@Override
@Transactional
public List<HighgoFunOneRefcursorEntity> getOneRefcursor(Integer id) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", id);
highgoFunOneRefcursorDao.getOneRefcursor(map);
List<HighgoFunOneRefcursorEntity> list = (List<HighgoFunOneRefcursorEntity>)map.get("result");
return list;
}2.dao層
@Mapper
public interface HighgoProOneRefcursorDao extends BaseMapper<HighgoProOneRefcursorEntity> {
ArrayList<Map<String, Object>> getProOneRefcursor(HashMap map);
}3.mapper
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.database.mybatisplus.modules.demo.dao.HighgoProOneRefcursorDao">
<!-- 可根據(jù)自己的需求,是否要使用 -->
<resultMap type="com.database.mybatisplus.modules.demo.entity.HighgoProOneRefcursorEntity" id="highgoProOneRefcursorMap">
<result property="hanzi" column="hanzi"/>
<result property="quanpin" column="quanpin"/>
<result property="szm" column="szm"/>
<result property="duyin" column="duyin"/>
<result property="numbersd" column="numbersd"/>
<result property="sd" column="sd"/>
<result property="repsd" column="repsd"/>
<result property="hzascii" column="hzascii"/>
</resultMap>
<!-- 調(diào)用存儲過程返回一個游標(biāo) -->
<select id="getProOneRefcursor" parameterType="map" statementType="CALLABLE" resultType="java.util.Map">
{call sp_one_refcursor(#{id,mode=IN},null,#{result,mode=OUT,jdbcType=OTHER,javaType=ResultSet,resultMap=highgoFunOneRefcursorMap})}
</select>
</mapper>4.數(shù)據(jù)庫過程
CREATE OR REPLACE PROCEDURE test.sp_one_refcursor(integer, INOUT refcursor)
LANGUAGE plpgsql
AS $procedure$
begin
if $1 = 1 then
open $2 for select * from hzpyszm limit 100;
elseif $1 = 2 then
open $2 for select hanzi,quanpin,szm,duyin from hzpyszm limit 100;
else
open $2 for select hanzi,quanpin from hzpyszm limit 100;
end if;
exception when others then
raise exception 'sql exception--%',sqlerrm;
end;
$procedure$
;5.jdbc參數(shù)
url: jdbc:highgo://192.168.21.138:5870/test?escapeSyntaxCallMode=callIfNoReturn
6.數(shù)據(jù)庫表
CREATE TABLE hzpyszm (
hanzi varchar(4) NULL,
quanpin varchar(10) NULL,
szm varchar(5) NULL,
duyin varchar(10) NULL,
numbersd varchar(1) NULL,
sd varchar(5) NULL,
repsd varchar(5) NULL,
hzascii int8 NULL
);
CREATE INDEX hzpyszm_hanzi_idx ON test.hzpyszm USING btree (hanzi varchar_pattern_ops);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('唔', 'ngn', 'n', 'ńgń', '2', NULL, NULL, 21780);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匌', 'ge', 'g', 'gé', '2', 'é', 'e', 21260);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匍', 'pu', 'p', 'pú', '2', 'ú', 'u', 21261);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匎', 'e', 'e', 'è', '4', 'è', 'e', 21262);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匏', 'pao', 'p', 'páo', '2', 'á', 'a', 21263);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匐', 'fu', 'f', 'fú', '2', 'ú', 'u', 21264);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匑', 'gong', 'g', 'gōng', '1', 'ō', 'o', 21265);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匒', 'da', 'd', 'dá', '2', 'á', 'a', 21266);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匓', 'jiu', 'j', 'jiù', '4', 'ù', 'u', 21267);
INSERT INTO hzpyszm (hanzi, quanpin, szm, duyin, numbersd, sd, repsd, hzascii) VALUES('匔', 'gong', 'g', 'gōng', '1', 'ō', 'o', 21268);總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Java?Socket實現(xiàn)GPS定位數(shù)據(jù)處理
在許多應(yīng)用場景中,如車輛追蹤、移動設(shè)備定位等,GPS定位數(shù)據(jù)的實時獲取和處理至關(guān)重要,本文將介紹如何使用Java?Socket編程來接收GPS設(shè)備發(fā)送的數(shù)據(jù)并進行處理,需要的朋友可以參考下2024-07-07
MyBatis_Generator插件的安裝以及簡單使用方法(圖解)
下面小編就為大家?guī)硪黄狹yBatis_Generator插件的安裝以及簡單使用方法(圖解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
Maven學(xué)習(xí)----Maven安裝與環(huán)境變量配置教程
這篇文章主要給大家介紹了關(guān)于如何利用Maven入手Spring Boot第一個程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
Spring項目中swagger用法與swagger-ui使用
這篇文章主要介紹了Spring項目中swagger用法與swagger-ui使用,通過圖文并茂的形式給大家介紹了編寫springboot項目的方法及導(dǎo)入spring-fox依賴的代碼詳解,需要的朋友可以參考下2021-05-05

