當前位置:首頁 » 存儲配置 » ibatis存儲過程結果集

ibatis存儲過程結果集

發布時間: 2023-09-20 03:57:07

1. ibatis調用存儲過程返回多個結果集,ibatis里怎樣配置能在java里獲取這幾個結果集

那就是你的存儲過程(report_day.report_day_pro)的問題啦,存儲過程沒有給回其他的返回值唄。。。

2. mybatis和ibatis的區別

1、基本信息不同

mybatis:MyBatis 是一款優秀的持久層框架,它支持定製化 sql、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。

MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將介面和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成資料庫中的記錄。

ibatis:iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發的JPetStore實例。相對Hibernate和ApacheOJB等「一站式」ORM解決方案而言,ibatis 是一種「半自動化」的ORM實現。

iBATIS 目前提供了三種語言實現的版本,包括:Java、.NET以及Ruby。

2、開發時間不同

mybatis:MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為MyBatis 。2013年11月遷移到Github。

ibatis:iBATIS一詞來源於「internet」和「abatis」的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目。

3、配置方法不同

mybatis簡化了編碼的過程,不需要去寫的實現類,直接寫一個的介面,再寫一個xml配置文件,整個mybatis就配置好了,也就是資料庫就連接好了,然後在service裡面直接調用就可以了,但是ibatis則不可以,必須要寫的實現類。mybatis是ibatis的升級版本。

3. ibatis調用mysql存儲過程,沒有結果集返回,求高手求救

calltotalUsers(?,?,?,?)

有問題吧?

改為

calltotalUsers(#{key1},#{key2},#{key3},#{key4})

key1~key4為paramMap里對應的鍵值

4. ibatis調用oracle存儲過程返回結果為boolean的問題

<parameter property="retBool" jdbcType="boolean" javaType="java.lang.Boolean" mode="INOUT"/>
應該是布爾型的 參數類型沖突 你該下試試謝謝

5. ibatis調用ms SQLSERVER 存儲過程結果集

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="UserDaoSqlMap">

<typeAlias alias="user" type="org.kylin.emap.bean.UserBean"/>

<resultMap id="userResultMap" class="user">
<result property="id" column="id"/>
<result property="loginName" column="login_name"/>
<result property="loginPasswd" column="login_passwd"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="phone" column="phone" typeHandler="org.kylin.emap.util.ibatis.PgsqlStringArrayTypeHandler"/>
<result property="privilege" column="privilege" typeHandler="org.kylin.emap.util.ibatis.PgsqlIntegerArrayTypeHandler"/>
</resultMap>

<parameterMap id="loginUserParameters" class="java.util.HashMap">
<parameter property="result" jdbcType="OTHER" javaType="java.sql.ResultSet" mode="OUT"/>
<parameter property="loginName" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="loginPasswd" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
</parameterMap>

<select id="checkUser" resultMap="userResultMap" parameterClass="user">
SELECT id, login_name, login_passwd, name, sex, phone, privilege
FROM t_user
WHERE login_name = #loginName# AND login_passwd = #loginPasswd#
</select>

<procere id="loginUser" resultMap="userResultMap" parameterMap="loginUserParameters" >
{? = call f_login_user(?,?)}
</procere>

</sqlMap>

在userResultMap中有typeHandler的描述,如phone欄位,用org.kylin.emap.util.ibatis.PgsqlStringArrayTypeHandler這個類來處理數組類型,這個類是實現了iBatis的com.ibatis.sqlmap.client.extensions.TypeHandlerCallback,iBatis是很強啊,很方便擴展。

先看procere的定義,用到了loginUserParameters做參數,返回userResultMap。
loginUserParameters描述了3個參數,按照調用方式: ? = call f_login_user(?, ?)的順序,第一個參數是返回結果集的,這里的jdbcType填寫OTHER,javaType填寫java.sql.ResultSet,如果是ORACLE的存儲過程通過游標返回結果集的話,jdbcType應該填寫為ORACLECURSOR,看來iBatis專門為ORACLE做了開發,不過在PostgreSQL中不能用ORACLECURSOR,得用OTHER。

好了,現在我們看看DAO中如何通過SqlMapClient得到這個結果集:
public UserBean loginUser(String loginName, String loginPasswd) throws DaoException {

HashMap<String, String> parameters = new HashMap<String, String>();
parameters.put("loginName", loginName);
parameters.put("loginPasswd", loginPasswd);
return (UserBean)getSqlMapClientTemplate().queryForObject("UserDaoSqlMap.loginUser", parameters);
}

當前這個例子,存儲過程通過游標返回了一行數據,我們可以用queryForObject得到結果集,結果集也自動影射為UserBean了,很方便使用。

6. ibatis 存儲過程的 查詢

queryForList返回的是List,queryForObject返回的是Object;
to LS:ibatis可以調用存儲過程。

熱點內容
C語言cast 發布:2024-11-30 15:34:39 瀏覽:982
查看資料庫事務 發布:2024-11-30 15:29:34 瀏覽:56
python無線 發布:2024-11-30 15:24:49 瀏覽:359
安卓手機怎麼下符文之地 發布:2024-11-30 14:49:28 瀏覽:878
安卓ota在哪裡打開 發布:2024-11-30 14:46:55 瀏覽:102
mapreduce演算法 發布:2024-11-30 14:46:50 瀏覽:16
python的shell 發布:2024-11-30 14:46:49 瀏覽:730
變頻器什麼時候配置電抗器 發布:2024-11-30 14:46:37 瀏覽:700
官方版我的世界登錄網易伺服器 發布:2024-11-30 14:38:37 瀏覽:113
安卓手機沒電會出現什麼問題 發布:2024-11-30 14:37:31 瀏覽:984