论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
使用SQLMaps进行对象关系(ORMAPING)映射
 作者:佚名     2007-3-14 17:25:32        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

引论

随着Hibernate逐渐成为其他架构之首,现今的许多工作都是在对象关系(OR)映射域上进行。但是,那些对象关系映射工具有一个问题:大部分数据库管理员似乎对这些对象关系(OR)映射工具所产生的查询不放心。不幸的是,这些数据库管理员不了解,架构所产生的查询是多么的优越,并且使你的应用程序更加灵活。他们觉得随着数据库成为应用程序的主要瓶颈,应该完全控制SQL查询,以便他们能分析和调试以促进性能。

但有个问题是,如果不使用对象关系(OR)映射工具,那么你将花费很多资源在书面形式上和维护低级JDBC代码。由于以下原因,每个JDBC应用程序都将含有重复代码:
1.连接和事务管理。
2.设置java对象为查询参数。
3.转换SQL ResultSets 为 java 对象。
4.生成查询字符串。

iBatis 的 SQLMaps 架构帮助我们在相当大的程度上减少了正常情况下访问关系数据库的java代码的总量。它考虑到了当前三个比较关心的问题,所以它可以将一个简单的 JavaBean 对象映射到 PreparedStatement 参数和 ResultSet 值。SQLMaps 的原理其实很简单:提供一个简单的架构来提供80%的JDBC功能。

这篇文章是关于如何使用 SQLMaps 架构的进阶辅导。我们将建立一个简单的 Struts 应用程序并且用 SQLMaps 配置它为开始。接着,我们将演示如何执行基本的数据库操作比如 SELECT, INSERT, UPDATE 等等。然后,我们将演示 SQLMaps 为连接和事务管理提供的操作。在最后,我们将试着使用一些高级的 SQLMaps 功能部件比如缓存和分页。

SQLMaps 的基本思想

使用 SQLMaps 架构,你必须建立一个XML文件列出所有你希望在应用程序中执行的SQL查询。对于每个SQL查询,你来指定哪个java类可以交换参数和ResultSet(结果集)。

在你的java代码中,如果你想要执行一个特殊的查询,你需要创建一个对象来传递查询参数和必要的条件,然后传递这个对象和查询的名字让 SQLMaps 执行。一旦查询被执行,SQLMaps 将为你指定的接受查询结果的类创建一个句柄,并且将它和数据库返回的ResultSet 中的值存储在一起。

一个简单的使用SQLMaps的应用程序(Hello World)

我们将创建一个简单的Struts应用程序开始来演示什么是使用SQLMaps的应用程序所需要的。这个例子的代码是来自以下资源部分。在这个例子中,我们用一个Jsp页面要求用户输入contactId属性。一旦它被提交,我们用它在CONTACT 表中搜索一个连接,并且用另一个Jsp页面展示给用户。接下来一步一步说明:

1. 拷贝ibatis-sqlmap-2.jar 和 ibatis-common-2.jar 到你的 web-inf/lib 文件夹中。

2. 在你的java源文件夹中创建一个 SqlMapConfig.xml 文件,像这样:


    
    
        
                            value="COM.ibm.db2.jdbc.app.DB2Driver"/>
                            value="jdbc:db2:SAMPLE"/>
                            value="db2admin"/>
                            value="admin2db"/>
        

    

    


SqlMapConfig.xml 是SQLMaps的部署描述信息,包括以下元素:

是文件的根元素。被用来定义应用程序级别的设置;例如 useStatementNamespaces 属性被用来定义是否要用准备说明的全限定名。它可以有一些另外的属性用于控制缓存和初始化;要知道更进一步的细节请查看文档。

被用来定义你想要在你的应用程序中使用的事务管理。在我们的例程中,我们要用Connection 对象的 commit 和 rollback 方法来管理事务,所以我们用JDBC作为事项管理程序。它包含 作为子元素,用来定义你要使用的连接管理的类型。在我们的例程中,我们要用SQLMaps自带的连接池实现,如此我们将使用一个SIMPLE类型的数据源。为了建立连接池,SQLMaps要求像JDBC驱动名称,URL,和密码这些信息,因此,我们使用元素来传递这些信息。稍后,我们将更加详细地讨论各种各样可用的事务和连接管理选项。

元素被用来表明 SQLMap 配置文件。这些文件,如早先讨论的,列出了你希望执行的SQL查询。

3. 创建一个JavaBean类,Contact.java,有属性 firstName, lastName 和 contactId 和相应的get、set方法。这个类将被用来向ResultSet传递查询参数并读取值。
public class Contact implements Serializable{
        private String firstName;
        private String lastName;
        private int contactId;
        //Getter setter methods for firstName,
        //lastName and contactId property
}


4. 建立一个Contact.xml文件,我们将在文件中列出所有要执行的与表Contact有关的SQL查询。

            type="com.sample.contact.Contact"/">
    



1 2 3 下一页>>

责任编辑:lss
  相关新闻
WebWork拦截器(Interceptor)使用方法
使用AppFuse框架进行开发的总结
快速上手Spring--4.安装和使用IDE
VFP表转换成SQL Server表的方法
Oracle诊断工具-RDA使用概述
允许内部用户使用Outlook Web Access
在Struts框架下使用时间类型
JAVA测试:使用JMock来实现孤立测试
如何知道 SQL Server 2000 是不是适合你的?
通过MCDBA证书来验证你的SQL Server水平
SQL Server对文件内容进行全文检索查询
ORACLE中用一条SQL实现其它进制到十进制的转换
通过MCDBA证书来验证你的SQL Server水平
如何知道 SQL Server 2000 是不是适合你的?
在Oracle实例间移动SQL调整工具集
Oracle诊断工具-RDA使用概述
Oracle9i iSQL*PLUS的配置过程
在Struts框架下使用时间类型
快速上手Spring--4.安装和使用IDE
使用Spring更好地处理Struts动作
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号