Chinaunix首页 | 论坛 | 博客
  • 博客访问: 501295
  • 博文数量: 99
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 783
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-12 09:11
文章分类

全部博文(99)

文章存档

2023年(2)

2022年(1)

2020年(1)

2019年(1)

2018年(4)

2017年(16)

2016年(60)

2015年(1)

2013年(3)

2006年(10)

我的朋友

分类: Java

2016-04-27 13:37:08

备注:本包包括了log4j2的日志功能                     

一、定义存储过程   

  1. CREATE DEFINER=`mybatis`@`localhost` PROCEDURE `test_procedure_01`(IN a int ,in b int ,out c int)
  2. BEGIN
  3.      业务......
  4.    //and  commit;
  5.    set c=a+b;
  6.    

  7. END
传入参数a,b,过程计算a+b的结果返回给C,
在mysql客户端 测试

  1. SET @p_out=1;

  2. CALL test_procedure_01(5, 6,@p_out);

  3. SELECT @p_out;
测试结果:

       

二、 XML文件配置

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "" >
  3. <mapper namespace="com.elements.proc.dao.CallprocMapper">


  4.     <select id="callProc" parameterType="java.util.Map"
  5.         statementType="CALLABLE" >
  6.         {CALL test_procedure_01(
  7.         #{a,jdbcType=INTEGER,mode=IN},
  8.         #{b,jdbcType=INTEGER,mode=IN},
  9.         #{c,jdbcType=INTEGER,mode=INOUT})
  10.         }
  11.     </select>

  12. </mapper>

三、接口定义类

  1. package com.elements.proc.dao;

  2. import java.util.Map;

  3.  

  4. public interface CallprocMapper {

  5.      void callProc(Map map); //注意这里没有返回值            
  6.     
  7. }

四、JAVA测试类

  1. package com.elements.proc;

  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.HashMap;
  5. import java.util.Map;

  6. import org.apache.ibatis.io.Resources;
  7. import org.apache.ibatis.session.SqlSession;
  8. import org.apache.ibatis.session.SqlSessionFactory;
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  10. import org.junit.Test;

  11. import com.elements.proc.dao.CallprocMapper;

  12. public class TestUserAddress {

  13.     @Test
  14.     public void TestSelectAll() throws IOException {
  15.         String resource = "mybatis-config.xml";
  16.         InputStream inputStream = Resources.getResourceAsStream(resource);
  17.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
  18.                 .build(inputStream);

  19.         SqlSession session = sqlSessionFactory.openSession();

  20.         try {

  21.             CallprocMapper mx = (CallprocMapper) session
  22.                     .getMapper(CallprocMapper.class);

  23.             int cc = 0;
  24.             Map map=new HashMap();
  25.             map.put("a", 1);
  26.             map.put("b", 2);
  27.             map.put("c", cc);
  28.              mx.callProc(map);
  29.             
  30.             int bbb=(Integer) map.get("c");
  31.             System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaa:"+bbb);

  32.         } finally {
  33.             session.close();
  34.         }

  35.     }

  36. }

项目代码地址: 

阅读(1833) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~