您的位置:首页 > 编程语言 > Java开发

JAVA持久层框架的概述(ibatis>>mybatis)

2015-06-02 10:33 543 查看
现在主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操作。几乎不需要写任何的SQL语句(根据配置好的映射关系文件自动生成对应的 SQL 并调用 JDBC 接口加以执行),以面向对象的形式就能实现对数据库的操作。给我们的编程带来了很大的好处,不需要再接触底层的SQL语句,同时也避免了在书写SQL语句时带来的诸多问题。
但这些ORM框架也是有它的问题的,那就是对于复杂的SQL查询、多表的联合查询实现起来很麻烦,甚至某些业务方面用Hibernate无法实现。举个例子:假如有2张几乎相同的表(在实际的项目中这样的情况是存在的),现在需要把这2张表的数据全部查询出来在页面显示,使用Hibernate可能会这样操作,首先各执行一次findAll,然后在Service中循环,再存到一个List中,最后在页面显示。这样是能实现,但是很麻烦,那么简单的方法是什么呢?使用SQL语句中的union all 关键字,一个SQL语句就能实现,所以在这种情况下使用Hibernate就不是很合适了。面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏,但JDBC也很麻烦,对于返回的ResultSet也需要处理。这时如果有一种框架即能写SQL语句,又不需要处理返回结果(结果自动映射成对象)的框架就好了,这时iBatis这种“半自动化的”ORM框架就显得很重要了。

相对Hibernate等自动化的ORM框架,iBatis的着力点是POJO与数据库表之间的映射,并不会自动的生成SQL语句,也就是说对于需要程序员自己写SQL语句,但是对于传递的参数和返回的结果iBatis会自动映射成POJO类,这样程序员就只需在配置文件中写SQL语句即可,不需操心返回结果的事。这样就带来了很大的便利。

ibatis本是apahce的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为mybatis。目前最新版本是MyBatis3.0.3。

现在主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操作。几乎不需要写任何的SQL语句(根据配置好的映射关系文件自动生成对应的 SQL 并调用 JDBC 接口加以执行),以面向对象的形式就能实现对数据库的操作。给我们的编程带来了很大的好处,不需要再接触底层的SQL语句,同时也避免了在书写SQL语句时带来的诸多问题。

但这些ORM框架也是有它的问题的,那就是对于复杂的SQL查询、多表的联合查询实现起来很麻烦,甚至某些业务方面用Hibernate无法实现。举个例子:假如有2张几乎相同的表(在实际的项目中这样的情况是存在的),现在需要把这2张表的数据全部查询出来在页面显示,使用Hibernate可能会这样操作,首先各执行一次findAll,然后在Service中循环,再存到一个List中,最后在页面显示。这样是能实现,但是很麻烦,那么简单的方法是什么呢?使用SQL语句中的union all 关键字,一个SQL语句就能实现,所以在这种情况下使用Hibernate就不是很合适了。面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏,但JDBC也很麻烦,对于返回的ResultSet也需要处理。这时如果有一种框架即能写SQL语句,又不需要处理返回结果(结果自动映射成对象)的框架就好了,这时iBatis这种“半自动化的”ORM框架就显得很重要了。

相对Hibernate等自动化的ORM框架,iBatis的着力点是POJO与数据库表之间的映射,并不会自动的生成SQL语句,也就是说对于需要程序员自己写SQL语句,但是对于传递的参数和返回的结果iBatis会自动映射成POJO类,这样程序员就只需在配置文件中写SQL语句即可,不需操心返回结果的事。这样就带来了很大的便利。

ibatis本是apahce的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为mybatis。目前最新版本是MyBatis3.0.3。

现在主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操作。几乎不需要写任何的SQL语句(根据配置好的映射关系文件自动生成对应的 SQL 并调用 JDBC 接口加以执行),以面向对象的形式就能实现对数据库的操作。给我们的编程带来了很大的好处,不需要再接触底层的SQL语句,同时也避免了在书写SQL语句时带来的诸多问题。

但这些ORM框架也是有它的问题的,那就是对于复杂的SQL查询、多表的联合查询实现起来很麻烦,甚至某些业务方面用Hibernate无法实现。举个例子:假如有2张几乎相同的表(在实际的项目中这样的情况是存在的),现在需要把这2张表的数据全部查询出来在页面显示,使用Hibernate可能会这样操作,首先各执行一次findAll,然后在Service中循环,再存到一个List中,最后在页面显示。这样是能实现,但是很麻烦,那么简单的方法是什么呢?使用SQL语句中的union all 关键字,一个SQL语句就能实现,所以在这种情况下使用Hibernate就不是很合适了。面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏,但JDBC也很麻烦,对于返回的ResultSet也需要处理。这时如果有一种框架即能写SQL语句,又不需要处理返回结果(结果自动映射成对象)的框架就好了,这时iBatis这种“半自动化的”ORM框架就显得很重要了。

相对Hibernate等自动化的ORM框架,iBatis的着力点是POJO与数据库表之间的映射,并不会自动的生成SQL语句,也就是说对于需要程序员自己写SQL语句,但是对于传递的参数和返回的结果iBatis会自动映射成POJO类,这样程序员就只需在配置文件中写SQL语句即可,不需操心返回结果的事。这样就带来了很大的便利。

ibatis本是apahce的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为mybatis。目前最新版本是MyBatis3.0.3。

原来官网:http://ibatis.apache.org/

现在官网:http://code.google.com/p/mybatis/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: