我是靠谱客的博主 欢呼大树,这篇文章主要介绍java使用mybatis 调用存储过程返回一个游标结果集,现在分享给大家,希望可以做个参考。

瀚高数据库
目录
环境
文档用途
详细信息

环境
系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7
版本:6.0,4.5
文档用途
mybatis调用存储过程返回游标接收结果集。

详细信息
1.service实现类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
@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层

复制代码
1
2
3
4
5
6
@Mapper public interface HighgoProOneRefcursorDao extends BaseMapper<HighgoProOneRefcursorEntity> { ArrayList<Map<String, Object>> getProOneRefcursor(HashMap map); }

3.mapper

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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"> <!-- 可根据自己的需求,是否要使用 --> <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> <!-- 调用存储过程返回一个游标 --> <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.数据库过程

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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参数

复制代码
1
2
url: jdbc:highgo://192.168.21.138:5870/test?escapeSyntaxCallMode=callIfNoReturn

6.数据库表

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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);

最后

以上就是欢呼大树最近收集整理的关于java使用mybatis 调用存储过程返回一个游标结果集的全部内容,更多相关java使用mybatis内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部