如何使用Mybaits调用数据库存储过程,按以下顺序Oracle案例库:

1.在数据库中创建以下存储过程:

create or replace procedure pro_hello(p_result out varchar2) is

begin

select * from 表名 where 条件=p_result

end;

2.编写SQL映射文件mapper.xml:

<select id="proHello" statementType="CALLABLE">

<![CDATA[

{call pro_hello (#{传进来的參数,mode=IN(传入參数),jdbcType=VARCHAR(參数类型)})}

]]>

</select>

3.编写JAVA代码调用存储过程

public class ProcedureTest {

public static void main(String[] args) throws IOException {

String resource = "mybatis.cfg.xml";

Reader reader = Resources.getResourceAsReader(resource);

SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);

SqlSession session = ssf.openSession();

try {

Map<String, String> param = new HashMap<String, String>();

param.put("p_user_name", "zhangsan");

String returnValue = (String) session.selectOne("User.proHello", param);

System.out.println("message=" + param.get("p_user_name"));

System.out.println("result=" + param.get("result"));

System.out.println("returnValue=" + returnValue);

} catch (Exception e) {

e.printStackTrace();

} finally {

session.close();

}

}

}

假设传入的參数是多个的话,

<parameterMap type="drvPhotoListInfo" id="drvPhotoListParam">
<parameter property="sfzmmc" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="sfzmhm" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="dabh" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="daglbm" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="ywglbm" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="jbr" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="bodys" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="returnCode" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="returnResult" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
</parameterMap>//调用存储过程的方法
<select id="saveDrvPhotoListInfo" statementType="CALLABLE" parameterMap="drvPhotoListParam">
{call BUSINESS.HIS_DRVDA_IN (?,?,?,? ,?,?,?,?,?)}
</select>
我的存储过程是放在包下边的 假设你没有放在包下 就这样写{call HIS_DRVDA_IN (?,?,?,? ,?,? ,? ,?,?)}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

mybaits使用存储过程的更多相关文章

  1. 5.MyBaits调用存储过程

    1.创建一个javaweb项目MyBatis_Part4_Procedure 2.在src下创建procedure.sql文件 --创建表 create table p_user( id number ...

  2. java mybaits 调用存储过程

    @Override public BaseResultMessage saveOrderConfirm(String billNo) { BaseResultMessage rm = Utils.re ...

  3. springmvc+mybaits一个事物同时update和调用存储过程异常回滚

    事物作用的impl类这样写的 @Override public int updateReturnAll(int item, int status, int idUser) { // TODO Auto ...

  4. mybaits 学习

    mybaits  学习(一) 注意:如果建的是web项目,run as java application 参考http://www.cnblogs.com/xdp-gacl/p/4261895.htm ...

  5. MyBatis中调用存储过程和函数

    一.调用存储过程 1.首先在数据库中定义存储过程,定义的存储过程的代码如下: //定义存储过程 create or replace procedure pag_add(p1 varchar2,p2 v ...

  6. Mybatis调用数据库的存储过程和方法

     转载. https://blog.csdn.net/ml0228123/article/details/81002258   上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...

  7. MyBaits理解?

    (1)MyBaits是一个基于Java的持久层框架,支持普通或定制化SQL查询.存储过程以及高级映射,使用XML或注解来配置和映射信息. (2)应用程序使用SQLSessionFactory实例,一个 ...

  8. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  9. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

随机推荐

  1. Program1-1

    package com.algo; import java.util.Random; import java.util.Scanner; public class P1_1 { static int ...

  2. 不起眼的 z-index 却能牵扯出这么大的学问(转)

    z-index在日常开发中算是一个比较常用的样式,一般理解就是设置标签在z轴先后顺序,z-index值大的显示在最前面,小的则会被遮挡,是的,z-index的实际作用就是这样. 但是你真的了解z-in ...

  3. oracle 之 内存—鞭辟近里(二)

    overview of the pga pga是在操作系统的进程或是线程特定的一块内存区域,它不是共享的.因为pga是进程指定的,因此它不会在sga中分配. pga是一个内存堆,其中包含了被专用服务器 ...

  4. JMX操作ActiveMQ(1)

    我们知道ActiveMQ broker的管理接口是通过JMX方式提供的. 一个简单的访问方式就是通过jconsole,输入 service:jmx:rmi:///jndi/rmi://localhos ...

  5. hdu1532(最大流)

    传送门:Drainage Ditches 题意:给出n个河流,m个点,以及每个河流的流量,求从1到m点的最大流量. 分析:网络流入门题,第一次写按照白书上毫无优化的Ford_fulkerson算法,先 ...

  6. 2014-5-22 java.lang.OutOfMemoryError: Java heap space的一次诊断

    收到消息某系统一个节点因为内存溢出而宕机.系统的中间件是weblogic.数据库的oracle. 1. 先用IBM  HeapAnalyzer分析内存溢出时的dump文件,找到占用内存最多的请求,然后 ...

  7. 对付"反盗链"

    对付"反盗链" 某些站点有所谓的反盗链设置,其实说穿了很简单, 就是检查你发送请求的header里面,referer站点是不是他自己, 所以我们只需要像把headers的refer ...

  8. poj3237(树链剖分)

    题目链接:http://poj.org/problem?id=3237 题目大意:指定一颗树上有3个操作: 1)询问操作,询问a点和b点之间的路径上最长的那条边的长度(即最大值): 2)取反操作,将a ...

  9. java參数传递方式问题

    java的參数传递方式到底是值传递还是引用传递,这一直是一个争论不休的问题,一直以来没有形成统一意见. 在这里,我也仅仅是说一说个人见解,不保证是对的,全当是抛砖引玉. 首先我的观点是java採用的是 ...

  10. 文件下载-SpringMVC中測试

    直接改动文件路径就能够.其它都不须要改动,帮助类已经为大家写好,可直接使用 1.Scroller: /** * 下载文件 * @author liupeng * @param request * @p ...