文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发JavaSPRING数据访问对象(DAO)框架入门
精品推荐
特别推荐
·实例讲解:Java中的SOAP技术
·Java语言出现的背景 影响及前景
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·如何有效防止Java程序源码被人偷窥?
·Cell插件在J2EE系统中的应用
·初学者想学Hibernate,初级基础教程
·Java语言实现支持视频点播的WEB服务器
·关于Java编程的中文问题的几条分析原则
·确保J2ME无线移动商业应用程序的安全性
热点TOP10
·SCJP认证套题解析(1)
·好东西介绍,直接用 java 命令行动态生成jpg文件
·JavaClassLoader与Package机制
·反射在Java Swing编程中的应用
·基于Java的界面布局DSL的设计与实现
·垃圾清理势在必行——Java垃圾收集算法
·Java应用技巧:对于 Cookie 的操作详解
·Java编译器对于String常量表达式的优化
·基于Java的界面布局 DSL 的设计与实现
·JAVA和.NET两个平台对于安全功能的比较

SPRING数据访问对象(DAO)框架入门

日期:2007年10月14日 作者: 查看:[大字体 中字体 小字体]


        salaryMap.put("MIN_SALARY",new Double(1));
        salaryMap.put("MAX_SALARY",new Double(50));
    }

 

  Spring DAO回调函数

  至此,已经说明为了解决传统DAO设计中存在的问题,如何封装和概括JdbcTemplate类中JDBC代码的静态部分。现在了解一下有关变量的问题,如设置绑定变量、结果集遍历等。虽然Spring DAO已经拥有这些问题的一般化解决方案,但在某些基于SQL的情况下,可能仍需要设置绑定变量。

  在尝试向Spring DAO转换的过程中,介绍了由于业务服务及其客户机之间的约定遭到破坏而导致的隐蔽运行时错误。这个错误的来源可以追溯到原始的DAO.dbcTemplate.queryForList()方法不再返回EmployeeTO实例列表。而是返回一个map表(每个map是结果集的一行)。

  如您目前所知,JdbcTemplate基于模板方法设计模式,该模式利用JDBC API定义SQL执行工作流。必须改变这个工作流以修复被破坏的约定。第一个选择是在子类中更改或扩展工作流。您可以遍历JdbcTemplate.queryForList()返回的列表,用EmployeeTO实例替换map对象。然而,这会导致我们一直竭力避免的静态代码与动态代码的混合。第二个选择是将代码插入JdbcTemplate提供的各种工作流修改钩子(hook)。明智的做法是在一个不同的类中封装传输对象填充代码,然后通过钩子链接它。填充逻辑的任何修改将不会改变DAO.

  编写一个类,使其实现在Spring框架特定的接口中定义的方法,就可以实现第二个选择。这些方法称为回调函数,通过JdbcTemplate向框架注册。当发生相应的事件(例如,遍历结果集并填充独立于框架的传输对象)时,框架将调用这些方法。

  第一步:传输对象

  下面是您可能感兴趣的传输对象。注意,以下所示的传输对象是固定的:

 package com.bea.dev2dev.to;

public final class EmployeeTO implements Serializable{

      private int empNo;
      private String empName;
      private double salary;

      /** Creates a new instance of EmployeeTO */
      public EmployeeTO(int empNo,String empName,double salary) {
          this.empNo = empNo;
          this.empName = empName;
          this.salary = salary;
      }
      public String getEmpName() {
          return this.empName;
      }
      public int getEmpNo() {
          return this.empNo;
      }

上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 下一页 




上一篇:实战角度比较EJB2和EJB3的异同

下一篇:实战角度比较EJB2和EJB3的架构异同

相关文章:
·最详细的黑客入门法则
·从零开始学黑客:网络黑客新手入门指南
·大智慧股票软件Level-2入门手册
·新手入门:操作系统重装完全攻略
·建立自由的会计日期的报表--1.4.让报表处理期初和期末之间的数据
·EasyRecovery 604硬盘数据恢复软件技巧
·Access使用查询--1.2.用选择查询进行分组数据的计算
·常用数据库比较
·CAD入门教程 锣丝钉
·VPN访问故障之排疑解惑
相关软件:
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·Photoshop 入门教程
·CorelDraw12 入门与实例(图文教程 菜鸟先飞系列教材)
·ASP入门教程
·AutoCAD2002入门与实例详解
·Flash MX 从入门到精通
·UML面向对象建模技术 csf 视频教程
·AutoCAD 14从入门到精通
·SQL/MYSQL/数据库教程专栏
·汇编语言入门教程PPT

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot