`
rainwindboy
  • 浏览: 56292 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

【驳iBATIS那一大堆的不伦不类的JavaBean~~~~】iBatis中的DTO和FORM设计

    博客分类:
  • JPA
阅读更多

    早有就这个想法,将自己在项目中用到的ibaits经验写出来,恰巧看到了这个标题,所以重新开了一个帖子,欢迎大家讨论一下。
    ibatis是一个轻量级的框架,他的优点在于Sql的自由化,这点我个人认为比hibernate好了很多,它比较灵活。但是问题来了,由于比较灵活,那么我们会面临一个问题,我们如何来操控它才是最优的。也许这个问题本身就是一个没有答案的问题,仁者见仁,智者见智,下面我只把自己的想法写下来,希望能帮助到希望得到帮助的人。
    对于web的三层结构,我们数据的传递流是这个样子的,Controller->service->dao->sqlmap->DB。那么我们该如何设计这个Bean呢,我认为这样是最佳的组合。Control(Form)->service(Dto)->dao.这样的好处在于,我们解耦了页面和数据库的对应关系。
    对于ibatis来说,单纯的增删改查,好像一般都是form和dto这两个bean没有什么区别,所以有些人可能会认为在control层和service层多出的form没有什么用处,但是业务复杂以后,你就会知道页面和数据库的解耦,是多么的重要。ok,今天的话题并不是讨论三层的bean设计,而是针对dto的设计。
    “iBATIS那一大堆的不伦不类的JavaBean“的作者可能还是一个在校的学生吧,这种看法,对于一个学生来讲,已经是很不错的。但是项目经验告诉我们,Dto的设计,并没有那么单纯,并不是一个简单的javaBean的问题,它涉及到了与数据库方面相关的内容。例如,一个新增操作,它设计到三个表的插入,这个dto你怎么设计呢,并且这个插入的动作并不是全表的插入操作,我们该怎么办。是针对所有需要插入的项,设计dto还是涉及到类似hibernate那样的orm映射,还是利用继承来设计呢?
    事实上,java的开发原则告诉我们,要将你实现的功能尽量拆分成元来进行,所谓的元,就是尽量的原子话,ok,遵循这个原则,我们需要将dto设计成orm的映射,即一个表对应一个dto。那么插入三个表,那就涉及到了三个表的dto数据来源问题,难道是我们需要将form中的每个字段都分别set到dto中吗,有重复的话,我们不是白做了很多的工作?好的,我们用sqlmap中的语句来解决它就可以了。
    所以,ibatis中的bean设计,绝对不是不伦不类的javabean,而是要符合你本身框架和数据库设计的综合bean的设计。
    以上只是个人看法,希望大家指正。

 

分享到:
评论
2 楼 C_J 2009-09-02  
我是比较赞同用ibatis entity的。

主要还是因为灵活性问题~

客户的需求往往是像叠罗汉一样叠出来的~

所以灵活适应业务逻辑才是舒服的~~

ibatis的设计思想我想也在此了吧

另外,澄清下一个事实(因为也是刚毕业),毕业设计绝大多数同学的业务逻辑都很简单(我想自己不会故意去把问题搞复杂吧),所以会有一大堆无用的dao和entity.
1 楼 抛出异常的爱 2009-07-26  
javaXX 写道
不是很懂什么叫做不不伦不类的JavaBean一大推。。。
一般将DAO封装成一个类,Service调用一下就可以了!!

你应该看看原贴....


对于一些已知的项目,
会常常发现一些流程只关心很少的几个字段...
其它字段对于这些流程来说是噪音.

而且在现实中操作的人员
也会对这些已存在的属性规类(当然不这样子的话谁记的住那么多专业名词啊).
跟据以上两点拆分业务类作为
ibits的entityBean会减少很多不必要的麻烦.
扩展性就会完美体现出来(变更总是以专业概念为最小单位来改变.而不是属性或字段)

业务就是技术.技术中包括业务.

相关推荐

    Ibatis.net学习和实例~

    Ibatis.net是一个轻量级的持久层框架,它在.NET环境中提供了灵活的数据访问接口,能够有效地将业务逻辑和数据访问层解耦。本教程将深入探讨Ibatis.net的学习与实践,帮助开发者更好地理解和掌握这个强大的工具。 ...

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    iBatis开发指南和一个iBatis实例

    在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入理解和掌握iBatis的关键。 首先,"iBatis精讲PDF"是理解iBatis基础概念和工作原理的重要资料。iBatis的核心理念是将SQL...

    ibatis官方中文文档

    iBATIS提供了一个灵活的映射框架,可以将SQL查询结果映射到Java对象上,同时也支持动态SQL,极大地提高了开发效率。 **iBATIS-SqlMaps-2_cn.pdf** 这份文档详细介绍了iBATIS的核心概念,如SqlMapConfig.xml配置...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    iBatis的动态SQL功能是其一大亮点,它允许在映射文件中编写条件语句,大大提高了SQL的灵活性。这部分源码主要在`org.apache.ibatis.builder.xml.XMLMapperBuilder`和`org.apache.ibatis.scripting.xmltags....

    ibatis api 帮助文档+IBATIS 开发文档

    IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java代码的分离,提高了开发效率和数据库移植性。本篇将...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,提供了更加灵活的数据访问接口。 在"ibatis demo"中,我们通常会看到以下核心概念和知识点: 1. **配置文件**:Ibatis的配置文件(mybatis-...

    Ibatis一对一映射提示

    一对一映射在数据库设计中是指两个表之间存在一对一的关系,例如,一个员工可能只有一个部门,一个部门也只对应一个员工。在iBATIS中,这种关系可以通过配置XML映射文件或者注解来实现。 **一对一映射的基本概念:*...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    总的来说,iBATIS DAO 2.3.4.726版的源码分析对于学习和理解Java中的持久层设计有极大的帮助。通过阅读和理解源码,开发者不仅能掌握iBATIS DAO的基本使用,还能深入了解其内部实现,提升数据库操作的技巧和优化能力...

    iBatis net版中文 1.6的

    iBatis 是一款著名的开源持久层框架,专为Java应用程序设计,它允许开发者将SQL语句直接嵌入到Java代码中,从而简化了数据访问层的开发。在.NET环境中,iBatis同样提供了相应的实现,即iBatis .NET版。这个版本与...

    ibatis 开发指南 和 iBATIS-SqlMaps两本图书

    《iBATIS 开发指南》和《iBATIS-SqlMaps》是两本关于Java开发领域中的重要框架——iBATIS的权威指南。这两本书详细介绍了如何使用iBATIS进行数据库交互,帮助开发者深入理解并熟练掌握这一持久层框架。 iBATIS,...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    在IT行业中,数据库操作是应用开发的核心部分,而Ibatis作为一个优秀的持久层框架,提供了灵活的SQL映射机制,使得数据库操作更为简单高效。本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与...

    ibatis-api中文(真的中文)

    总的来说,这些文档覆盖了iBATIS的关键概念和实践,包括SQL Maps的创建和使用、DAO层的构建以及如何在实际项目中应用iBATIS。通过深入学习和实践,开发者可以充分利用iBATIS的灵活性和效率,简化数据库访问,提高...

    ibatis3.1官方中文帮助文档

    《iBatis 3.1 官方中文帮助文档》是开发者们学习和掌握iBatis框架的重要参考资料,尤其对于那些使用中文作为主要工作语言的程序员来说,这是一份非常实用的指南。iBatis是一个优秀的持久层框架,它允许开发者将SQL...

    ibatis 第一个程序

    标题 "iBatis 第一个程序" 暗示我们将探讨如何使用 iBatis,这是一个流行的持久层框架,用于简化 Java 应用程序中的数据库操作。iBatis 提供了一种方式,将 SQL 查询与应用程序代码分离,使得开发更加灵活且易于维护...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...

    iBatis一个小项目

    iBatis是一个轻量级的Java持久层框架,它的核心理念是将SQL语句与Java代码分离,使得开发者可以更加灵活地控制SQL的执行。在本项目中,我们将深入探讨iBatis的基本概念、配置、映射文件以及如何在实际应用中使用它。...

    C# IBatis IBatis基础 完整项目

    通过这个项目,学习者可以了解如何在C#和Asp.Net环境下配置和使用IBatis,以及如何结合Mvc框架来设计和实现一个完整的Web应用。此外,还将接触到数据库设计、SQL查询编写以及数据访问层与业务逻辑层的解耦等核心概念...

    ibatis2.0中文API

    在iBATIS 2.0中文API中,我们可以深入理解这个框架的核心功能和用法,包括一对多、多对一的关系映射、属性设置以及解决方案的详细解析。 首先,一对多和多对一的关系映射是ORM(对象关系映射)中的关键概念。在...

Global site tag (gtag.js) - Google Analytics