iBATIS.net的OR映射篇

简介:
相对于Nhibernate复杂的配置文件实现来说,IBatisnet的映射配置更为简单直接,下面我们就 之前的例子 分析一下一个典型的配置文件(Person.xml):
ContractedBlock.gif Code
说明:

可以看到,映射文件主要分为两个部分:模块配置和statement配置

一、模块配置
1、typeAlias节点定义了本映射文件中的别名,以避免过长变量值的反复书写,此例中通过typeAlias节点为类“IBatisNetDemo.Domain.Person”定义了一个别名“Person”,这样在本配置文件中的其他部分,需要引用“IBatisNetDemo.Domain.Person”类时,只需以其别名替代即可。
2、cacheModel节点
定义了本映射文件中使用的Cache机制:

< cacheModel  id ="person-cache"  implementation ="MEMORY"   >
      < flushInterval  hours ="24" />
      
< flushOnExecute   statement ="UpdateAccountViaInlineParameters" />
      
< flushOnExecute   statement ="UpdateAccountViaParameterMap" />
       
< property  name ="Type"  value ="Weak" />
 
</ cacheModel >

CacheModel主要有几个配置节点说明:

ContractedBlock.gif Code

 这里先声明了一个名为“person-cache”的cacheModel,之后可以在statement声明中对其进行引用:

ContractedBlock.gif Code

这表明对通过id为SelAllPerson的“Select Statement”获取的数据,使用CacheModel “person-cache”进行缓存。之后如果程序再次用此Satement进行数据查询。即直接从缓存中读取数据,而不需再去数据库查询
3、resultMaps节点
resultMaps实现dotnet实体到数据库字段的映射配置:

ContractedBlock.gif Code

 二、statement配置
1、Statement配置包含了数个与Sql Statement相关的节点,<statement>元素是一个通用的能够包容任意类型sql的元素。我们可以用更多细节的元素。这些细节元素提供更好的错误检查以及一些更多的功能。(例如,一个插入函数能够返回数据库自动生成的key)。以下表格总结了声明类型元素以及他们的特性和属性。


最后要注意,Person.xml的属性是“嵌入的资源”,不少新手在这上面载了跟头,哎,切肤之痛啊。
2、statement类型对应的sql语句
SqlMap的核心概念是Mapped Statement,Mapped Statement可以使用任意的SQL语句,并拥有Parameter Map(输入) 和Result Map(输出)。要想得到合法的输入输出结果,Sql语句显然是Mapped Statement中最重要的部分。开发人员可以使用对于数据库合法的任意SQL语句.只要在dbms上支持,可能使用任意的函数,甚至是多条语句,这个就比较考验开发人员的数据库基础和sql编写功力了。对于已经习惯使用自动生成sql语句的开发框架的程序员来说确实挺费解的。但是sql也是合格程序员的基本要素之一吧,写写更健康。不过呢,本文不会在sql语句和函数上作任何详细的文字说明,因为这个需要不断实践和积累经验,谁写谁知道啊。






本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/09/06/1531511.html,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
开发框架 .NET API
ASP.NET Core Web中使用AutoMapper进行对象映射
ASP.NET Core Web中使用AutoMapper进行对象映射
|
开发框架 前端开发 .NET
ASP.NET Core MVC 从入门到精通之自动映射(二)
ASP.NET Core MVC 从入门到精通之自动映射(二)
84 0
|
4月前
|
C#
.NET开发中合理使用对象映射库,简化和提高工作效率
.NET开发中合理使用对象映射库,简化和提高工作效率
176 0
|
开发框架 JSON .NET
ASP.NET Core 十九. Action参数的映射与模型绑定(中)
前文说道了Action的激活,这里有个关键的操作就是Action参数的映射与模型绑定,这里即涉及到简单的string、int等类型,也包含Json等复杂类型,本文详细分享一下这一过程。
311 0
ASP.NET Core 十九. Action参数的映射与模型绑定(中)
|
JSON 开发框架 .NET
ASP.NET Core 十九. Action参数的映射与模型绑定(下)
前文说道了Action的激活,这里有个关键的操作就是Action参数的映射与模型绑定,这里即涉及到简单的string、int等类型,也包含Json等复杂类型,本文详细分享一下这一过程。
231 0
|
XML JSON 开发框架
ASP.NET Core 十九. Action参数的映射与模型绑定(上)
前文说道了Action的激活,这里有个关键的操作就是Action参数的映射与模型绑定,这里即涉及到简单的string、int等类型,也包含Json等复杂类型,本文详细分享一下这一过程。
145 0
|
.NET 开发框架 中间件
2.3Options建立配置和实体的映射「深入浅出ASP.NET Core系列」
原文:2.3Options建立配置和实体的映射「深入浅出ASP.NET Core系列」 希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 Startup.cs中创建MVC中间件   关键代码:services.AddMvc();app.UseMvcWithDefaultRoute(); 关于中间件的内部机制,后续单独专栏进行深入挖掘,此处略过。
1029 0
|
.NET 索引 中间件
2.3Options建立配置和实体的映射「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 Startup.cs中创建MVC中间件   关键代码:services.AddMvc();app.UseMvcWithDefaultRoute(); 关于中间件的内部机制,后续单独专栏进行深入挖掘,此处略过。
967 0
|
Ubuntu .NET Linux
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十三 || DTOs 对象映射使用,项目部署Windows+Linux完整版
代码已上传Github+Gitee,文末有地址 番外:时间真快,今天终于到了系统打包的日子,虽然项目还是有很多问题,虽然后边还有很多的内容要说要学,但是想着初级基本的.Net Core 用到的基本至少就这么多了(接口文档,项目框架,持久化ORM,依赖注入,AOP,分布式缓存,CORS跨域等等...
1870 0
|
前端开发 JavaScript .NET
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--参数自动映射篇(6/8)
文章目录 前情概要 路由、action的扫描、发现、注册搞定之后,后来我发现在我们的action里面获取参数往往都是通过request对象来一个一个获取。同样的一行代码我们不厌其烦的重复写了无数次。遂想着那我们能不能像后端程序一样做得更自动化一些呢? 所以,接下来我们再来完成一个比较重要的功能,那就是参数的自动绑定。
936 0