如何使用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. a++为啥不能用作左值

    原地址:http://wy892648414.blog.163.com/blog/static/212212135201378496591/ 1)首先说左值和右值的定义: 变量和文字常量都有存储区,并 ...

  2. 快速学会搭建SVN服务器

    原文:快速学会搭建SVN服务器 SVN是一个版本控制工具,常用于我们软件开发项目中,用来管理我们团队共同使用的代码,文档等历史版本的管理,保持代码的更新,避免混乱. 需要工具: svn安装程序:免费下 ...

  3. adnroid仿miui的dialog

    先来看下效果图: 当中show和dismiss的时候有动画效果. 原先试过使用PopupWindow来做,可是使用的时候不是那么舒服,毕竟不是dialog嘛. 所以这次尝试还是使用dialog来做 , ...

  4. C++ 多态性分析

    编译 - 时间多态性--函数重载 编译后的中间代码(例如GCC产生.o文件.此时还不是汇编语言)函数名字有变化,看以下两个样例. void cc_show(const char*str)     -& ...

  5. linux它SQL声明简明教程---WHERE

    我们并不一定必须注意,每次格里面的信息是完全陷入了.在很多情况下,我们需要有选择性地捕捞数据.对于我们的样本.我们可以只抓住一个营业额超过 $1,000 轮廓. 做这个事情,我们就须要用到 WHERE ...

  6. 使用COM提供SafeArray数据

    在前一篇博文<读取SafeArray数据>我们介绍了C#读取安全数组.那么我们的COM怎么编写呢? 1. 定义SAFEARRAY变量 SAFEARRAY *pSArray = NULL; ...

  7. FZU 2113(数位dp)

    题目连接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=38054 题意:求区间[a,b]中包含'1'的个数. 分析:数位dp ...

  8. 程序员的视角:java 线程(转)

    在我们开始谈线程之前,不得不提下进程.无论进程还是线程都是很抽象的概念,有一个关于进程和线程很形象的比喻能帮我们更好的理解. 进程就像个房子,房子是一个包含了特定属性的容器,例如空间大小.卧室数量等. ...

  9. hdu 4771 Stealing Harry Potter&#39;s Precious

    题目:给出一个二维图,以及一个起点,m个中间点,求出从起点出发,到达每一个中间的最小步数. 思路:由于图的大小最大是100*100,所以要使用bfs求出当中每两个点之间的最小距离.然后依据这些步数,建 ...

  10. Vs2012于Linux应用程序开发(4):公共财产的定义

    在嵌入式开发流程.有些参数基本上不改变,比如编译主机IP,username,password等参数.我们用VS提供的属性管理器来保存这些參数. 打开属性管理器: watermark/2/text/aH ...