mybaits使用存储过程

如何使用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 (?,?,?,?

,?,?

,?

,?,?)}

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

时间: 2024-10-03 23:54:43

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

5.MyBaits调用存储过程

1.创建一个javaweb项目MyBatis_Part4_Procedure 2.在src下创建procedure.sql文件 1 --创建表 2 create table p_user( 3 id number primary key, 4 name varchar2(20), 5 sex varchar2(2) 6 ); 7 8 create sequence seq_puser; 9 10 insert into p_user values(seq_puser.nextval,'A','男

【Mybaits学习】07_ 调用存储过程

查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 1.创建表与存储过程 参数:IN `sex_id` int,OUT `user_count` int 2.创建表所对应的实体类 package nh.ui.automation.tools.Mybaits; /** * 项目 :UI自动化测试 Mybaits 类描述: * * @author Eric * @date 2017年3月5日 nh.ui.automation.tools.Mybaits */ public class PUs

mybaits中使用存储过程

如何使用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&

Mybaits(14)存储过程

一.MyBatis存储过程调用 1.创建存储过程 CREATE PROCEDURE save_user_info ( OUT id INTEGER, IN user_name VARCHAR ( 20 ), IN real_name VARCHAR ( 20 ), IN sex VARCHAR ( 20 ), IN moble VARCHAR ( 20 ), IN email VARCHAR ( 20 ), IN note VARCHAR ( 20 ) ) BEGIN INSERT INTO t

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

事物作用的impl类这样写的 @Override public int updateReturnAll(int item, int status, int idUser) { // TODO Auto-generated method stub try { int updateReturnAll = itemMapper.update****(); if(updateReturnAll>0){ Map<String, Object> map=new HashMap<String,O

MyBaits+Spring实现基本CRUD操作

一.MyBaits介绍   MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型.Map 接口和POJO 到数据库记录.相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现.   与hibernate对比,MyBatis更基础,要求使用者自己控制的东西更多.mybatis完

oracle存储过程入门

如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例: 1.在数据库中创建以下的存储过程: java代码: create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is begin p_result := 'hello,' || p_user_name; end; 2.编写SQL映射文件mapper.xml: java代码: <select id="pr

MyBatis中调用存储过程和函数

一.调用存储过程 1.首先在数据库中定义存储过程,定义的存储过程的代码如下: //定义存储过程 create or replace procedure pag_add(p1 varchar2,p2 varchar2,p3 =p1+ create or replace function fun_add(p1 number ,p2 number) return number asbegin return p1+p2;end;   2.通过接口映射Sql,定义接口 package cn.et.myba

mybaits generator 代码自动生成工具使用

mybaits generator 代码自动生成工具使用MyBatis Generator (MBG) 是一个Mybatis的代码生成器,它可以帮助我们根据数据库中表的设计生成对应的实体类,xml Mapper文件,接口以及帮助类(也就是我们可以借助该类来进行简单的CRUD操作),这样就避免了我们每使用到一张表的数据就需要手动去创建对应的类和xml文件,这就帮我们节约了大量的时间去开发和业务逻辑有关的功能,但是如果对联合查询和存储过程您仍然需要手写SQL和对象. 生成方式主要有 Maven 和