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

ibatis存儲過程

發布時間: 2022-05-04 11:33:40

『壹』 ibatis調用返回遊標的存儲過程,沒有輸入參數的

<parameterMap type="map" id="LeaveApplyDetailMap">
<parameter property="resultCode" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
<parameter property="resultData" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
</parameterMap>

<!-- 檢查請假日期是否有效 -->
<select id="LeaveCheck" parameterMap="LeaveApplyDetailMap">
CALL PKG_ATT.SP_Get_LeaveCheck(#{strEmployeeNo},#{beginDate},#{endDate},#{typeNo},#{resultCode},#{resultData})
</select>

『貳』 spring+ibatis 調用Oracle存儲過程出錯

jdbcType應該採用標準的數據類型,varchar2是oracle自定義的,非標準的。

改成 jdbcType="VARCHAR" 再試試

『叄』 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了,很方便使用。

『肆』 ibatis調用oracle存儲過程返回結果為boolean的問題

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

『伍』 ibatis調存儲過程,出現數組越界錯誤,怎麼改

你可以把調用存儲過程時的那個proDto參數改為HashMap嘗試一下埃map裡面put一個name為PRM_IDCARD然後在put一個PRM_NAME兩個參數進去,,調用完成後獲取PRM_NAME試試。

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

calltotalUsers(?,?,?,?)

有問題吧?

改為

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

key1~key4為paramMap里對應的鍵值

『柒』 ibatis 存儲過程的 查詢

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

『捌』 封裝的ibatis怎麼調用oracle存儲過程入參

在cx_oracle 中定義一個參數比如 rec_data TBL_MY_OBJECT; 然後給予賦值 比如 rec_data.id =XXX;rec_data .DATA =XXX; 然後調用INIT_MY_TYPE(rec_data );即可。

『玖』 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的升級版本。

熱點內容
從哪裡找電腦密碼 發布:2024-11-17 16:26:31 瀏覽:689
我的世界空島戰爭伺服器ip地址 發布:2024-11-17 16:17:53 瀏覽:54
虛擬機配置g4是什麼意思 發布:2024-11-17 16:11:09 瀏覽:140
rhce腳本題 發布:2024-11-17 15:58:44 瀏覽:304
通訊錄上傳失敗 發布:2024-11-17 15:51:26 瀏覽:329
雲存儲存在哪裡 發布:2024-11-17 15:42:09 瀏覽:369
python動態 發布:2024-11-17 15:41:27 瀏覽:115
通用的安卓充電器是什麼型號 發布:2024-11-17 15:40:41 瀏覽:744
解壓天堂 發布:2024-11-17 15:21:24 瀏覽:959
mac桌面文件夾 發布:2024-11-17 15:12:29 瀏覽:590