mybatis存儲過程返回結(jié)果集 mybatis怎么調(diào)用存儲過程?
mybatis怎么調(diào)用存儲過程?<selectid="selectUserById"statementType="CALLABLE"useCache="false">{callselect_u
mybatis怎么調(diào)用存儲過程?
<selectid="selectUserById"statementType="CALLABLE"useCache="false">{callselect_user_by_id(#{userId,mode=IN},#{realname,mode=OUT,jdbcType=VARCHAR},#{username,mode=OUT,jdbcType=VARCHAR},#{email,mode=OUT,jdbcType=VARCHAR},#{phone,mode=OUT,jdbcType=VARCHAR},#{remarks,mode=OUT,jdbcType=VARCHAR},#{createDate,mode=OUT,jdbcType=TIMESTAMP})}</select>
mybatis怎么使用存儲過程?
1.調(diào)用沒有OUT參數(shù)的存儲過程: 創(chuàng)建存儲過程: create or replace function get_code(a1 varchar(32)) returns varchar(32) as $$ declare the_result varchar(32) begin the_result := name from t_project where id = a1 return the_result end $$ language plpgsql sqlMap配置文件:注:不使用OUT參數(shù)的存儲過程可以直接用 select 程序: public String generateCode(String a1) { Map
java-mybatis調(diào)用存儲過程有幾種方式?
通過數(shù)據(jù)庫查詢一組數(shù)據(jù),數(shù)據(jù)中包含一個表中的一條數(shù)據(jù)、2個String類型的字符串,想通過Oralce的存儲過程實現(xiàn)?! batis映射配置: //存儲過程傳入?yún)?shù) //存儲過程傳出參數(shù) //存儲過程傳出參數(shù) //存儲過程傳出參數(shù) {callP_DJ_GETRYANDPYRBYRYID(?)}//我的存儲過程 Service類調(diào)用Ibatis的代碼: MapparamMap=newHashMap() paramMap。
mybatis調(diào)用存儲過程怎樣用數(shù)組作為入?yún)ⅲ?/h2>
最近做個項目有很多的報表統(tǒng)計,涉及到幾十張表抽取數(shù)據(jù),形成一系列統(tǒng)計數(shù)據(jù)。
舉個例子,比如統(tǒng)計一個單位不同職務(wù)級別女人數(shù)量、少數(shù)民族數(shù)量、30歲以上人員數(shù)量,40以上人員數(shù)量等。如: 董事長:0 0 0 1 中層領(lǐng)導(dǎo):2 2 3 8 職員:20 40 80 200 剛開始想辦法拼成了一個超級長的sql來做,但是最后長度超過vachar2的最大長度了,雖然有其他辦法解決,雖然最大sql看起來很美好,但是想想后期的優(yōu)化和維護,還是決定重新來規(guī)劃。中間的過程就不說了,最終確定先定義一行數(shù)據(jù)存number型object(類似一維數(shù)組),形式如(0,0,1)。然后放到二維數(shù)組里。閑言少敘,如下定義: [html] view plaincopy在CODE上查看代碼片派生到我的代碼片 create or replace TYPE C_ROW IS OBJECT( COUNT_SEX NUMBER, --性別女統(tǒng)計 COUNT_NATION NUMBER, --少數(shù)民族統(tǒng)計 COUNT_30AGE NUMBER --30歲統(tǒng)計 ) [html] view plaincopy在CODE上查看代碼片派生到我的代碼片 create or replace TYPE C_ROW_CLM IS TABLE OF C_ROW 關(guān)于以上的語法我就不解釋了。C_ROW_CLM 就是二維數(shù)組。一個簡單的存儲過程如下:就是往二維數(shù)組放了三列。