早有就这个想法,将自己在项目中用到的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的设计。
以上只是个人看法,希望大家指正。
分享到:
相关推荐
Ibatis.net是一个轻量级的持久层框架,它在.NET环境中提供了灵活的数据访问接口,能够有效地将业务逻辑和数据访问层解耦。本教程将深入探讨Ibatis.net的学习与实践,帮助开发者更好地理解和掌握这个强大的工具。 ...
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入理解和掌握iBatis的关键。 首先,"iBatis精讲PDF"是理解iBatis基础概念和工作原理的重要资料。iBatis的核心理念是将SQL...
iBATIS提供了一个灵活的映射框架,可以将SQL查询结果映射到Java对象上,同时也支持动态SQL,极大地提高了开发效率。 **iBATIS-SqlMaps-2_cn.pdf** 这份文档详细介绍了iBATIS的核心概念,如SqlMapConfig.xml配置...
iBatis的动态SQL功能是其一大亮点,它允许在映射文件中编写条件语句,大大提高了SQL的灵活性。这部分源码主要在`org.apache.ibatis.builder.xml.XMLMapperBuilder`和`org.apache.ibatis.scripting.xmltags....
IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java代码的分离,提高了开发效率和数据库移植性。本篇将...
Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,提供了更加灵活的数据访问接口。 在"ibatis demo"中,我们通常会看到以下核心概念和知识点: 1. **配置文件**:Ibatis的配置文件(mybatis-...
一对一映射在数据库设计中是指两个表之间存在一对一的关系,例如,一个员工可能只有一个部门,一个部门也只对应一个员工。在iBATIS中,这种关系可以通过配置XML映射文件或者注解来实现。 **一对一映射的基本概念:*...
总的来说,iBATIS DAO 2.3.4.726版的源码分析对于学习和理解Java中的持久层设计有极大的帮助。通过阅读和理解源码,开发者不仅能掌握iBATIS DAO的基本使用,还能深入了解其内部实现,提升数据库操作的技巧和优化能力...
iBatis 是一款著名的开源持久层框架,专为Java应用程序设计,它允许开发者将SQL语句直接嵌入到Java代码中,从而简化了数据访问层的开发。在.NET环境中,iBatis同样提供了相应的实现,即iBatis .NET版。这个版本与...
《iBATIS 开发指南》和《iBATIS-SqlMaps》是两本关于Java开发领域中的重要框架——iBATIS的权威指南。这两本书详细介绍了如何使用iBATIS进行数据库交互,帮助开发者深入理解并熟练掌握这一持久层框架。 iBATIS,...
在IT行业中,数据库操作是应用开发的核心部分,而Ibatis作为一个优秀的持久层框架,提供了灵活的SQL映射机制,使得数据库操作更为简单高效。本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与...
总的来说,这些文档覆盖了iBATIS的关键概念和实践,包括SQL Maps的创建和使用、DAO层的构建以及如何在实际项目中应用iBATIS。通过深入学习和实践,开发者可以充分利用iBATIS的灵活性和效率,简化数据库访问,提高...
《iBatis 3.1 官方中文帮助文档》是开发者们学习和掌握iBatis框架的重要参考资料,尤其对于那些使用中文作为主要工作语言的程序员来说,这是一份非常实用的指南。iBatis是一个优秀的持久层框架,它允许开发者将SQL...
标题 "iBatis 第一个程序" 暗示我们将探讨如何使用 iBatis,这是一个流行的持久层框架,用于简化 Java 应用程序中的数据库操作。iBatis 提供了一种方式,将 SQL 查询与应用程序代码分离,使得开发更加灵活且易于维护...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...
iBatis是一个轻量级的Java持久层框架,它的核心理念是将SQL语句与Java代码分离,使得开发者可以更加灵活地控制SQL的执行。在本项目中,我们将深入探讨iBatis的基本概念、配置、映射文件以及如何在实际应用中使用它。...
通过这个项目,学习者可以了解如何在C#和Asp.Net环境下配置和使用IBatis,以及如何结合Mvc框架来设计和实现一个完整的Web应用。此外,还将接触到数据库设计、SQL查询编写以及数据访问层与业务逻辑层的解耦等核心概念...
在iBATIS 2.0中文API中,我们可以深入理解这个框架的核心功能和用法,包括一对多、多对一的关系映射、属性设置以及解决方案的详细解析。 首先,一对多和多对一的关系映射是ORM(对象关系映射)中的关键概念。在...