1:编写简单函数:(通过return关键字返回结果集)
create or replace function fun_add(p1 number ,p2 number)
return number
as
begin
return p1+p2;
end;
2.MyBatis的xml文件(对于返回值为一般数据类型的函数)
复杂类型用:
<parameter property="result"jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT "resultMap="auditselect_resultList" />
<parameterMap id="parameterInoutTypeNum"
class="java.util.Map">
<parameter property="p3" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="p1" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN" />
<parameter property="p2" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN" />
</parameterMap>
<procedure id="inoutTypeNum_Oracle" parameterMap="parameterInoutTypeNum">
{? = call fun_add(?,?)}
</procedure>
3.dao层
//查询函数的方法
public void callFunction(Map map);
4.service实现类
//调用函数
public void funTest(){
SqlSession session=getSession();
CallMapper cm=session.getMapper(CallMapper.class);
Map map=new HashMap();
map.put("p1", 100);
map.put("p2", 400);
cm.callFunction(map);
System.out.println(map.get("p3"));
}