IBATIS.net 中remapResults属性的运用
2010-11-02 10:59
323 查看
昨天开始学IBARIS框架了,今天老师上课的时候老师说-里面的remapResults属性没用,可能是XML架构出了问题。
我仔细研究了一下,同是也参考了别人的例子(http://www.360doc.com/content/07/1207/15/7147_876919.shtml),总结如下:
remapResults绝对是有用的,而且很灵活。
1:SELECT $colunm$ FROM table
2:SELECT Name FROM $table $
如上例,当我们需要查询的列或表是变化的,动态指定的,那么如果不设remapResults或设为false,则可能出现总是
比如,当我们第一次查询指定的列是ID,第二次再指定为Name,那么例1查出的永远是列ID。
同样的,当我们第一次查询指的是表Employee,第二次指定的是Department,那么返回的结果永远都是Employee的内容.
其实原因很简单,就是IBATIS出于效率的原因,在我们第一次执行完后,它会自动的将上面的语句缓存,下一次再使用的时候,它将自动调用缓存的内容。
如果把remapResults设置为TRUE,则每次IBATIS都会去调去真实的语句,从而避免了这个问题。
当然,这样做是要付出相应的性能代价的,在查询的列名和表名不发生变化的时候,最好是把该属性设为false或不设.
反之,则必需设为true。
我仔细研究了一下,同是也参考了别人的例子(http://www.360doc.com/content/07/1207/15/7147_876919.shtml),总结如下:
remapResults绝对是有用的,而且很灵活。
1:SELECT $colunm$ FROM table
2:SELECT Name FROM $table $
如上例,当我们需要查询的列或表是变化的,动态指定的,那么如果不设remapResults或设为false,则可能出现总是
比如,当我们第一次查询指定的列是ID,第二次再指定为Name,那么例1查出的永远是列ID。
同样的,当我们第一次查询指的是表Employee,第二次指定的是Department,那么返回的结果永远都是Employee的内容.
其实原因很简单,就是IBATIS出于效率的原因,在我们第一次执行完后,它会自动的将上面的语句缓存,下一次再使用的时候,它将自动调用缓存的内容。
如果把remapResults设置为TRUE,则每次IBATIS都会去调去真实的语句,从而避免了这个问题。
当然,这样做是要付出相应的性能代价的,在查询的列名和表名不发生变化的时候,最好是把该属性设为false或不设.
反之,则必需设为true。
相关文章推荐
- ibatis 合理运用remapResults属性
- ibatis的remapResults属性
- ibatis 的remapResults属性
- ibatis的remapResults属性
- Ibatis 在什么情况需要使用remapResults属性
- ibatis的remapResults属性
- iBatis的remapResults属性
- 合理运用remapResults属性
- ibatis 当查询的结果集列明动态变化时,需要在select等标签上加上 remapResults="true"属性.
- ibatis的remapResults属性
- ibatis的remapResults属性
- 运用路由约束 使用属性路由 精通ASP-NET-MVC-5-弗瑞曼
- C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量巧用,属性实际运用,唯一性验证
- ASP.NET System.Web.HttpContext类Current属性 的运用
- iBatis.Net(C#)SQL数据映射
- Asp.net 中session存储的三种模式的具体运用
- SSRS:ASP.NET中引用报表远程认证之ReportServerCredentials属性的设置
- asp.net控件开发基础(10) --------再谈属性,实现自定义控件集合属性
- 前面在《Asp.Net Forums中对.Net中序列化和反序列化的应用》一文中讲了,对于一些扩展属性,可以将字符串集合序列化为二进制,也可以从二进制反序列化为字符串集合。其实我一直有个疑问,对于asp.net中可以很容易实现,但是在asp中该如何?
- 关于hibernate配置文件的formula(公式)属性的运用