但这些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。apache
如今主流的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框架就显得很重要了。mybatis
相对Hibernate等自动化的ORM框架,iBatis的着力点是POJO与数据库表之间的映射,并不会自动的生成SQL语句,也就是说对于须要程序员本身写SQL语句,可是对于传递的参数和返回的结果iBatis会自动映射成POJO类,这样程序员就只需在配置文件中写SQL语句便可,不需操心返回结果的事。这样就带来了很大的便利。框架
ibatis本是apahce的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,而且更名为mybatis。目前最新版本是MyBatis3.0.3。google
如今主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操做。几乎不须要写任何的SQL语句(根据配置好的映射关系文件自动生成对应的 SQL 并调用 JDBC 接口加以执行),以面向对象的形式就能实现对数据库的操做。给咱们的编程带来了很大的好处,不须要再接触底层的SQL语句,同时也避免了在书写SQL语句时带来的诸多问题。spa
但这些ORM框架也是有它的问题的,那就是对于复杂的SQL查询、多表的联合查询实现起来很麻烦,甚至某些业务方面用Hibernate没法实现。举个例子:假若有2张几乎相同的表(在实际的项目中这样的状况是存在的),如今须要把这2张表的数据所有查询出来在页面显示,使用Hibernate可能会这样操做,首先各执行一次findAll,而后在Service中循环,再存到一个List中,最后在页面显示。这样是能实现,可是很麻烦,那么简单的方法是什么呢?使用SQL语句中的union all 关键字,一个SQL语句就能实现,因此在这种状况下使用Hibernate就不是很合适了。面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋再也不锐利,甚至没法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏,但JDBC也很麻烦,对于返回的ResultSet也须要处理。这时若是有一种框架即能写SQL语句,又不须要处理返回结果(结果自动映射成对象)的框架就行了,这时iBatis这种“半自动化的”ORM框架就显得很重要了。code
相对Hibernate等自动化的ORM框架,iBatis的着力点是POJO与数据库表之间的映射,并不会自动的生成SQL语句,也就是说对于须要程序员本身写SQL语句,可是对于传递的参数和返回的结果iBatis会自动映射成POJO类,这样程序员就只需在配置文件中写SQL语句便可,不需操心返回结果的事。这样就带来了很大的便利。对象
ibatis本是apahce的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,而且更名为mybatis。目前最新版本是MyBatis3.0.3。