收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 


renqiwang的笔记
状态: 离线
人气:2719508
访问用户量:2505
笔记经验:
总积分:389
级别:普通会员
搜索本笔记
ta的交流分类
ta的交流主题贴(61)
ta的所有交流贴(81)
ta的全部笔记
全部笔记(189)
未分类笔记(15)
JAVA(73)
课程问题(0)
Hibernate4(7)
Spring3(11)
Struts2(1)
ant(1)
maven(1)
jBPM(5)
Java Web(11)
研磨Struts2(15)
jquery(1)
Oracle&JDB……(2)
PL-SQL(1)
Android(0)
log4j&slf4……(1)
Mybaits(4)
研磨设计模式(28)
SpringMVC(11)
Spring Dat……(1)
存档
2013-11(10)
2013-07(12)
2012-11(1)
2012-08(28)
2012-03(6)
2012-02(132)

2012-03-19 13:35:06
Mybatis技术(五)Mybatis调用存储过程
浏览(101195)|评论(0)   交流分类:Java|笔记分类: Mybaits

如何使用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="proHello" statementType="CALLABLE">
<![CDATA[
    {call pro_hello (#{p_user_name,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}
]]>
</select>


 

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

 

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();
          }
       }
}


 

4.执行Java代码,控制台输出结果如下:

 

java代码:
2012-03-07 20:36:32,406 DEBUG [java.sql.PreparedStatement] -==>  Executing: {call pro_hello(?,?)}
2012-03-07 20:36:32,406 DEBUG [java.sql.PreparedStatement] -==> Parameters: zhangsan(String)
message=zhangsan

 

 

感谢 iteye  chenjc_it

精品视频课程推荐

透彻理解JavaBean视频教程
深入浅出的讲解JavaBen的写法、JavaBean的用法、JavaBean的实现机制、JavaBean对应翻译的代码理解。

Java数据结构和算法精讲版
本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上。 从零开始、全面系统、成体系的讲解数据结构和基本算法,循序渐进的讲述构建软件系统所常见的数据结构和算法。

Java Web开发-项目部分(中国移动科技综合管理系统)视频教程
中国移动科技综合管理系统,对JDBC实现CRUD的抽象化和复用化;UUID自动生成;分层开发、综合示范Jsp+Servlet+JavaBean+TagLib+JSTL+JDBC的实现;Web分页、Web树、日期控件、真实值和表现值转换;众多杂项技术的实现,比如:tab、左右选择等等

研磨设计模式——跟着cc学设计系列视频教程
本视频课程是北京Java私塾原创精品书籍《研磨设计模式》一书的配套学习视频,由《研磨设计模式》的第一作者CC录制 课程目标:全面、系统的掌握GoF设计模式的知识,达到可以在实际项目开发中运用的能力 技术要点:如何实现可配置、如何实现缓存以及缓存的管理、如何实现用缓存来控制多实例的创建、如何实现参数化工厂、 如何实现可扩展工厂、如何实现原型管理器、如何实现Java的静态代理和动态代理、如何实现多线程处理队列请求、 如何实现命令的参数化配置、可撤销的操作、宏命令、队列请求和日志请求、如何实现翻页迭代、如何检测环状结构、 如何实现通用的增删改查、如何模拟工作流来处理流程、如何实现简单又通用的XML读取、如何实现模拟AOP的功能......

XML基础视频教程
创建规范的XML文档,DTD的作用,并且可以根据要求创建私用的DTD,通过JavaScript解析XML DOM

浏览(101195)|评论(0)   交流分类:Java|笔记分类: Mybaits

评论(0)
请登录后评论 登录

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网