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

ibatismysql存儲過程

發布時間: 2022-04-26 13:14:28

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

calltotalUsers(?,?,?,?)

有問題吧?

改為

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

key1~key4為paramMap里對應的鍵值

『貳』 ibatis調用存儲過程,存儲過程可以返回多個cursor嗎

一個存儲過程中可以定義多個cursor啊。游標可以嵌套執行,也可以順序執行。不過記得要將found這個變數的值在需要的地方設置為true。否則就不繼續執行了。

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

『肆』 有人在嗎 mysql + java +ibatis 調用存儲過程卡死了 但是存儲過程已經執行成功了,資料庫數據已經進去了

你看下你在java的層,用什麼方法調用的存儲過程,是Insert還是query

『伍』 ibatis 存儲過程的 查詢

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

『陸』 Ibatis如何調用存儲過程

存儲過程的調用是使用<procere元素來調用的, 下面是一個使用帶輸出參數的存儲過程的例子:
<parameterMap id=swapParameters class=map
�0�2�0�2<parameter property=email1″ jdbcType=VARCHAR javaType=java.lang.String mode=INOUT/
�0�2�0�2<parameter property=email2″ jdbcType=VARCHAR javaType=java.lang.String mode=INOUT/
</parameterMap
如果你的存儲過程返回一個結果集,那麼使用queryForList()或者queryForObject來調用, 如果你的存儲過程既返回結果集又更新資料庫數據,那麼需要配置<transactionManager的commitRequired=’true’
如果存儲過程不返回結果集,或者僅僅以輸出參數的形式返回結果集,那麼應該使用update()方法。
<procere id=swapEmailAddresses parameterMap=swapParameters

『柒』 mysql和iBATIS性能優化

你這個項目做性能優化,可以從三個方面著手:
1. Mysql資料庫本身的優化,參考《Mysql性能優化全功略》http://www.cndw.com/tech/data/2006041338931.asp

2. Sql語句和存儲過程的優化,這里有比較系統的資料:http://www.crazycoder.cn/Tag/715/Index.html

3. 使用伺服器端緩存技術,可以藉助於第三方緩存實現,如ecache, jbossCache等,自己查資料

上面三條3效果最明顯,2次之,1效果不一定明顯但一勞永逸。

『捌』 請教一下iBatis中怎麼寫 set @a:=0;select @a:=@a+1 from table這種形式的語句

是存儲過程,以下是mysql查詢時帶行號的結果,供你參考:

SELECTtemp.*FROM(SELECT(@rowNum:=@rowNum+1)ASrow_no,t.*FROMtaskt,(SELECT(@rowNum:=0))bWHEREt.is_start=1ORDERBYt.execute_timeASC,t.create_timeASC)tempWHEREtemp.seller_id=384652432
熱點內容
c語言通訊錄程序設計 發布:2024-11-18 19:35:21 瀏覽:98
微信下載的圖片在哪個文件夾 發布:2024-11-18 19:23:06 瀏覽:358
我的世界查伺服器ip地址 發布:2024-11-18 19:23:04 瀏覽:212
電腦加裝存儲硬碟不影響速度吧 發布:2024-11-18 19:21:52 瀏覽:693
伴生氣壓縮機 發布:2024-11-18 19:21:40 瀏覽:878
javalinux環境變數設置 發布:2024-11-18 19:20:58 瀏覽:843
按存取方式來分主存儲器 發布:2024-11-18 19:20:55 瀏覽:223
安卓屏幕如何升級 發布:2024-11-18 19:01:19 瀏覽:479
磁碟密碼在哪裡看到 發布:2024-11-18 19:01:16 瀏覽:885
我的世界鴿子回歸伺服器 發布:2024-11-18 19:01:16 瀏覽:487