在使用ibatis的时候很多人都不会去用ibatis的resultMap做映射,即使有,也可能是因
为需要做对象关系关联,或者是因为需要调用存储过程而使用的,当然如果需要使用ibatis
的类型转换(比如需要确定输出的date格式等等)的可能会使用resultMap,但很多经常的
情况是我们直接使用javabean做结果映射!因为这样不用再写resultMap到javabean的映
射了!呵呵,以前一直是这样以为的,但今天调试了个奇怪的bug,才对resultMap的又一作
用有了深刻的认识,毕竟它浪费了我一个来小时!所以写出来让自己记住!
在使用javabean做结果映射的时候,即使该值已经被查询出来而该字段却没有在对应的
javabean里面被定义,在编译运行上,ibatis都不会提示有任何的错误,只会默默的忽略
掉这个字段的值!这个会因为一点小的错误,导致很隐蔽的bug,因为程序员都深信自己的程
序是对的,尤其是这样的bug到测试后期才被提出!
这里再一次对上次在圈子里面提过的讨论做一个强调,当时因为不知道为什么自动生成的类有什么样的作用,为什么不能去修改,所以决定去修改试试看,开始以为如果只是因为修改数据库字段所以才不让修改理由似乎有点勉强,所以决定自己去试验下!
现在深刻体会到不要在自动生成类里面去写代码的道理,首先,在数据改动后要自己修改sqlmap和对性的javabean就会让自己很不爽!更加关键的是,很多时候真的很希望自己能够在程序中就有根数据表的一份映射。而在自动生成的类中写入了自己的代码,比如加入了自己的字段,以适应自己的查询的输入或输出!
最后程序变得很乱,代码不能得到很好的组织,对一个功能整体抽取不出一份代码!现在基本都建立自己的类,然后让自己的类去包含自动生成的javabean!这样在代码中保存了跟数据库的映射,同时也能够快速适应数据库的修改。
为曾经的年轻付出了代价。。。。。。。。
分享到:
相关推荐
【iBATIS In Action:使用映射语句...理解如何创建和使用映射语句,以及如何处理参数和结果集,是高效使用iBATIS的关键。后续章节将进一步探讨如何执行非查询语句,如更新和删除,以及如何利用iBATIS的其他高级特性。
功能:当你建立好数据库,写好javabean,就可以用这个工具来为你的javabean和数据库之间做一个映射. 当然这个映射只是一个大致的模板,很多时候你可能要稍做修改.但是也为你节约了很多的时间. <br>使用方法: 1....
Ibatis的主要特点是通过XML或注解定义SQL映射文件,将SQL语句与Java对象绑定。例如,`<select>`标签用于定义查询语句,`<insert>`、`<update>`和`<delete>`分别对应增删改操作。在SQL映射文件中,可以使用动态SQL来...
在使用ibatis时,还需要定义JavaBean,如`User`类,用于映射数据库中的表。`User`类中包含了对应数据库字段的属性,如`id`和`name`,并通过getter和setter方法进行访问。 同时,需要在`SqlMapConfig.xml`中配置数据...
4. **参数映射**:介绍如何使用parameterMap来指定输入参数,包括基本类型、Map对象、JavaBean对象等。 5. **缓存**:IBATIS支持本地缓存和全局缓存,可以有效减少数据库访问,提高性能。 6. **事务管理**:讲解了...
5. **参数映射**:使用#{param}占位符,配合Map或JavaBean传递参数,实现参数与SQL中的动态绑定。 6. **缓存机制**:Ibatis提供了本地缓存和二级缓存,可以提高数据访问速度,但需要根据项目需求谨慎配置和使用。 ...
3. **数据对象**:讨论如何定义JavaBean作为数据对象,以及如何通过iBATIS自动映射查询结果到这些对象。 4. **事务管理**:讲解如何使用iBATIS进行事务控制,包括手动和自动提交/回滚事务。 5. **缓存机制**:分析...
标题中的".Net,JavaBean,ibatis配置文件组件生成工具"揭示了这是一个专注于软件开发的工具,主要用于.NET框架,同时涉及到JavaBean和iBATIS这两个Java领域的概念。这个工具的主要功能是自动生成.NET项目中与数据库...
Ibatis是一个开源的持久层框架,它通过简单的XML配置文件将JavaBean映射到SQL语句上,从而极大简化了对关系数据库的操作。与其他数据库持久层框架如JDO、Hibernate相比,Ibatis的最大优势在于其简洁性和易学性。只需...
4.4 使用内联结果映射和显式结果映射 78 4.4.1 基本类型结果 79 4.4.2 JavaBean结果和Map结果 81 4.5 小结 81 第5章 执行非查询语句 82 5.1 更新数据的基本方法 82 5.1.1 用于非查询SQL语句的SqlMap API 82 5.1.2 ...
在本文档中,我们将深入探讨Spring如何与iBatis协同工作,包括JavaBean实体、映射文件的配置,以及DAO实现的连接。 1. **Spring对iBatis的支持** Spring为iBatis提供了全面的内建支持,这主要体现在`org.spring...
iBATIS,作为一款开源的持久层框架,其前身称为SQL Maps,主要功能是实现Java对象与数据库操作的映射,使得开发人员能够通过简单的配置文件或者注解来进行数据库交互,而无需编写复杂的JDBC代码。本文将基于给定的...
下面我们将详细探讨Ibatis配置文件模板中的关键组成部分,包括`SqlMap.properties`、`SqlMapConfig.xml`以及与JavaBean的映射文件。 1. **SqlMap.properties** 这是Ibatis的属性配置文件,主要用于存放数据库连接...
结果映射是Ibatis的一个强大特性,它可以自动将查询结果转换为Java对象。通过`<resultMap>`标签定义字段和对象属性的映射规则,包括基本类型、复杂类型(如自定义对象)和关联关系的映射。 8. **动态SQL** Ibatis...
- **结果映射** (`resultMap`):定义了如何将数据库查询结果映射到 Java 对象。 - **SQL 查询**:定义了具体的 SQL 语句,其中 `#value#` 是参数占位符。 ##### 2.2 IBatis配置与DAO实现 在宠物店项目中,IBatis ...
在"ibatis3.0+jsp(demo)"项目中,JSP页面可能用于显示从数据库查询到的数据,或者接收用户输入,与后台JavaBean进行交互,实现数据的增删改查功能。 【数据库脚本】 项目中包含了创建数据库和表的脚本,这些脚本...
总之,在使用iBatis进行数据库操作时,正确配置SQL映射文件至关重要。通过对SQL映射文件的细节关注、动态SQL的合理使用以及异常的有效处理,可以显著提高开发效率并减少错误发生的概率。此外,良好的调试习惯也是...
iBATIS鼓励使用JavaBean作为数据模型,结合DAO(Data Access Object)模式,实现数据访问的封装和解耦。 #### 六、其他组件与资源 iBATIS还提供了多个辅助组件和工具,如DataAccessObject、Resources、...