zoukankan      html  css  js  c++  java
  • Ibatisnet介绍

    介绍

    欢迎来到iBATISNet Database Layer!这个框架将让你能够更好的在dotnet应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,另一个是Data Access Objects。

    SQL Maps

    Sql Maps是这个框架中最激动人心的部分,它是整个iBATIS Database Layer的核心价值所在。通过使用Sql Maps你可以显著的节约数据库操作的代码量。SQL Maps使用一个简单的XML文件来实现从实体到SQL statements的映射。跟其他的框架或者对象映射工具相比,SQL Maps最大的优势是简单。它需要学习的东西很少,在连接表或复杂查询时也不需要复杂的scheme,使用SQL Maps,你可以自由的使用SQL语句。

    Data Access Objects (DAO)

        当我们开发灵活的DOTNET应用时,有一个好主意就是通过一个通用API层把实体操作的细节封装起来。Data Access Objects允许你通过一个简单接口的来操作数据,从而隐藏了实现的细节。使用DAO,你可以动态配置你的应用程序来访问不同的实体存储机制。如果你有一个复杂的应用需要用到几个不同的数据库,DAO可以让你建立一个一致的API,让系统的其他部分来调用。

    Examples

    NPetShop Example Application  一个在线商店。

    SQL Maps (IBatisNet.DataMapper.*)

    概念

        SQL Map API允许程序员很简单的把DOTNET对象映射到PreparedStatement参数或者ResultMap。SQL Maps的机制很简单,提供一个框架,来实现用20%的代码来实现80% ADO.NET的功能。

    How does it work?

        SQL Maps提供一个简单的框架,通过XML描述来映射DOTNET实体类,MAP implementations甚至原始类型的包装(String,Integer等)到Ado.net PreparedStatement。想法很简单,基本的步骤如下:

    1) 提供一个参数,无论是对象还是一个Nativel类型。参数将被用于设置sql语句或存储过程的运行时的值

    2) 通过传送参数和在你的xml描述中的声明名字或者存储过程来执行映射。这一步将是魔术般的步骤。框架将会准备sql声明或者存储过程,用你的参数设置运行时数据值,执行sql语句或者存储过程,返回结果。

    3) 在更新的时候,更新的行数将会被返回。在查询的时候,返回的将是一个对象或者对象的集合。象参数,结果对象,或者对象的集合,可以是一个plan-old对象或者native类型。

    流程图如下:

    Data Access Objects

    在开发健壮的 Dotnet 应用程序时,用分层的持久性实现的详细说明通常是一个好主意。Data Access Objects(DAO)允许您创建简单的组件,提供对数据的访问,而无需将实现的详细说明展示给应用程序的其余部分。使用 DAO 可以动态地配置应用程序,从而使用不同的持久性机制。如果您有一个涉及许多不同的数据库和持久性方法的复杂程序,那么 DAO 可以帮助您创建一个用于您将使用的其他应用程序的持久性 API。

    通过允许将动态的、可插入的 DAO 组件很容易地换入换出,可以使用 iBATIS Data Access Objects API 帮助隐藏持久性层实现的细节,不让其他应用程序知道。例如,您可以使用两个特殊的 DAO,一个使用 iBATIS SQL Maps 框架将对象持久存储到数据库中,另一个则使用NHibernate 框架。类似的一个例子将是一个为另一个 DAO 提供缓存服务的 DAO。根据使用情况(例如,有限的数据库性能与有限的内存相对),您可以插入这个缓存 DAO,或者可以使用标准的非缓存 DAO。这些例子展示了 DAO 模式提供的一些便利;然而,DAO 提供的安全性更为重要。DAO 模式可以保护应用程序,使之不必与特定持久性方法捆绑在一起。在当前解决方案不适合(甚至不可用)的情况下,可以创建新的 DAO 实现来支持新的解决方案,而不必修改其他应用层中的任何代码。

    http://blog.chinaunix.net/u/30002/showart_338429.html

  • 相关阅读:
    CodeForces 706C Hard problem
    CodeForces 706A Beru-taxi
    CodeForces 706B Interesting drink
    CodeForces 706E Working routine
    CodeForces 706D Vasiliy's Multiset
    CodeForces 703B Mishka and trip
    CodeForces 703C Chris and Road
    POJ 1835 宇航员
    HDU 4907 Task schedule
    HDU 4911 Inversion
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1721735.html
Copyright © 2011-2022 走看看