Hibernate可行性全面概括
在向大家详细介绍Hibernate可行性之前,首先让大家了解下Hibernate的优点和缺点,然后全面介绍Hibernate可行性。
1.优点
◆简单:易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
◆实用:提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供了dao框架,可以使我们更容易的开发和配置我们的dal层。
◆灵活:通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
◆功能完整:提供了连接管理,缓存支持,线程支持,(分布式)事物管理,通过配置作关系对象映射等数据访问层需要解决的问题。提供了dao支持,并在dao框架中封装了ado.net,Hibernate和datamapper.增强系统的可维护性:通过提供dal层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
2.缺点
◆滞后性:还没有明确对。net2.0的支持。最新版本在2.0下编译可以,但有些单元测试不能通过。
◆不成熟,工程实践较少:ibatisnet在实际项目中的使用较少。 只是理论上可行。
◆半orm,工具支持较少:需要我们自己写sql,并且。net下还未发现可以自动生成业务层类和配置文件的工具,这点和Hibernate不一样,Hibernate会为我们的数据库直接产生sql,并有一些辅助工具。因此使用ibatis比Hibernate要多做一些工作。
3.Hibernate可行性
没有最好的框架,只有最适合的框架。存在的便是合理的,它存在就说明有它存在的道理。但它未必为我们存在。所以选择一个框架最主要的是看它对你有没有意义,意义有多大,是不是比其他框架带给你的好处要多。没有绝对的优点也没有绝对的缺点,重要的是看在什么情况下讨论。
上面说了部分的ibatis的优点和部分缺点。这些优点从理论上证明ibatis对任何数据持久层都合适,但未必是最好的选择。下面对上面的优缺点分别从两方面讨论。
◆简单:我们都喜欢简单,简单意味着学习成本低,使用中出错的可能性低。同时,简单的东西一般来说功能不够强大。反过来,复杂的东西学习成本高,用起来不方便,并且团队没有很强的技术实力,一般不要使用。
◆实用:解决了项目中需要解决的问题,这是任何实际工程中采用的框架和工具都应具有的性质,否则就不要拿到实际项目中来。
◆灵活:灵活有两层意思,一种是简单易扩展,另一种是功能强大提供了很多选项。ibatis属于前者,Hibernate属于后者。两者各有优缺点。
◆功能完整:ibatis的功能完整也是相对的,比我们自己开发的框架应该完整,但对比其他框架肯定也有一些解决不了的问题。
增强系统的可维护性:利用ibatis可以做到sql和代码分离,可以设计出一个清晰的数据访问层(dal)。但项目架构是否科学合理,是否以维护,关键不在ibatis,因为它只是一个数据层框架。但是我们也不得不清楚,要想发挥ibatis的优势,我们需要做一些额外工作,比如最好设计dao接口,需要将业务层实体和对实体的访问放在不同的工程中,同时需要维护xml配置文件。
◆滞后性:ibatis组现在还没有提到要支持。net2.0,很多人在。net2.0下使用ibatis都出现了问题。所以如果要使用。net2.0开发,ibatis不是一个好选择,还需要等待。