å¦ä½ä½¿ç¨Mybaitsè°ç¨æ°æ®åºä¸çåå¨è¿ç¨ï¼ä¸é¢ä»¥Oracleæ°æ®åºç为ä¾ï¼
1ï¼å¨æ°æ®åºä¸å建以ä¸çåå¨è¿ç¨ï¼
2ï¼ç¼åSQLæ å°æ件WxclDAO.xmlï¼
<select id="selectWxcl2" parameterType="java.util.Map" statementType="CALLABLE">
<![CDATA[
call pro_wxcl(#{result,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=WxclMap},
#{wxclid,mode=IN,jdbcType=VARCHAR})
]]>
</select>
å ¶ä¸statementType="CALLABLE"表示è¦è°ç¨åå¨è¿ç¨ï¼parameterTypeåæ°ç±»åï¼
jdbcType对åºæ°æ®åºä¸çæ°æ®ç±»åï¼javaType对åºä»£ç ä¸çæ°æ®ç±»åï¼resultMap表示ç»æéâWxclMapâ
å®ä¹äºè¿åçæ°æ®ç±»å
3ï¼ç¼åJAVA代ç è°ç¨åå¨è¿ç¨:
public class WxclServiceImpl implements WxclService {
private WxclDAO wxclDAO;
public void setWxclDAO(WxclDAO wxclDAO) {
this.wxclDAO = wxclDAO;
}
@SuppressWarnings("unchecked")
public List<WxclDto> selectWxcl2(WxclBean wxclBean){
// ç¨ä½ä¼ ååæ¥åè¿åå¼
Map<String, Object> params = new HashMap<String, Object>();
params.put("wxclid", "121212");
// å°è¿åå¼ä¿åå°Listä¸
List<WxclDto> resultList= new ArrayList<WxclDto>();
wxclDAO.selectWxcl2(params);
// ç»æéä¿åå¨paramsä¸éè¿è·åKEYå¼åå¾ç»æ
resultList=(List<WxclDto>) params.get("result");
return resultList;
}
4.è¿è¡ç»æå¾ï¼
具体点比如:返回类型是SYS_REFCURSOR
怎样来处理
{call procedure(?)}
没有这个吧
xml会报错
我的环境是ibatis的 mybatis我没用过,可能有一些差别吧
其实用select标签也是可以调用存储过程的