从hibernate转向ibiats之ibatis基础知识(hibernate与ibatis区别)
2010-11-07 17:35
288 查看
传统的基于SSH(struts+spring+hibernate)框架的架构中,hiberante起到了ORM、数据持久化的作用,使我们以面向对象的思想来操作数据库。甚至我们可以完全不懂sql语句或语法也可以写好程序。
但是如果遇到以下一些情况,hiberante强大的功能可能也提供不了更好的支持:
1,共享别人的系统,此时也许别的系统没有给我们操作表的更多的权限,只是select语句或一些存储过程。
2,对于性能要求较高的模块,需要特别的优化的sql语句的环境。
hiberanate通常使用的方式:
数据库中建一个表,项目中建一个模块包,再建一个子包model,该包中建一个和表对应的实体类,该包中建一个和实体类对应的hibernate的配置文件。建一个Dao包和DaoImpl包,分别对应包下建一个实体类Dao和实体类DaoImpl来实现对该实体的数据库操作。到此为止,基本上就可以结束了。剩下的就是写对应的service和service的impl以及对应的action和jsp的工作。
建好后的包如下:
![](http://hi.csdn.net/attachment/201011/7/0_1289119901l1ku.gif)
这样就算结束我,就可以通过hibernate操作student类进而进行数据库中对应该表的各种操作了。
相对于hiberante,ibatis则要复杂一些。
相对于Hibernate等提供了全面的数据库封装机制的“全自动化”
,ibatis则提供了半自动化的操作。“全自动”ORM 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。ibatis的半自动化则需要用户自己编写sql语句,并编写sql语句参数和返回结果对应的POJO的映射文件。ibatis这样操作可以是用户在sql语句上下文章,使用户有更多的机会操作更复杂的sql语句。
ibatis通常使用方式如下:
![](http://hi.csdn.net/attachment/201011/7/0_128912210422s3.gif)
如上图,基于ibatis的包结构图,其中model包对应的是实体,service对应的服务类,dao包对应的是dao层,此时dao有别于hibernate的dao层,hibernate是实体和数据库表中字段对应的一个xml配置文件即可。而ibatis的实体则是提供了一个用来传递数据的载体,xml中则需要首先配置需要的sql语句,其次sql语句的返回的字段及对应的实体的映射,再次sql语句对应的参数的配置(可以为基本类型或自己建的实体类型)
作者也是在新项目中用到了ibatis,所以会用一段时间来研究学习ibatis,希望跟各位读者共同学习和进步。
但是如果遇到以下一些情况,hiberante强大的功能可能也提供不了更好的支持:
1,共享别人的系统,此时也许别的系统没有给我们操作表的更多的权限,只是select语句或一些存储过程。
2,对于性能要求较高的模块,需要特别的优化的sql语句的环境。
hiberanate通常使用的方式:
数据库中建一个表,项目中建一个模块包,再建一个子包model,该包中建一个和表对应的实体类,该包中建一个和实体类对应的hibernate的配置文件。建一个Dao包和DaoImpl包,分别对应包下建一个实体类Dao和实体类DaoImpl来实现对该实体的数据库操作。到此为止,基本上就可以结束了。剩下的就是写对应的service和service的impl以及对应的action和jsp的工作。
建好后的包如下:
![](http://hi.csdn.net/attachment/201011/7/0_1289119901l1ku.gif)
这样就算结束我,就可以通过hibernate操作student类进而进行数据库中对应该表的各种操作了。
相对于hiberante,ibatis则要复杂一些。
相对于Hibernate等提供了全面的数据库封装机制的“全自动化”
,ibatis则提供了半自动化的操作。“全自动”ORM 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。ibatis的半自动化则需要用户自己编写sql语句,并编写sql语句参数和返回结果对应的POJO的映射文件。ibatis这样操作可以是用户在sql语句上下文章,使用户有更多的机会操作更复杂的sql语句。
ibatis通常使用方式如下:
![](http://hi.csdn.net/attachment/201011/7/0_128912210422s3.gif)
如上图,基于ibatis的包结构图,其中model包对应的是实体,service对应的服务类,dao包对应的是dao层,此时dao有别于hibernate的dao层,hibernate是实体和数据库表中字段对应的一个xml配置文件即可。而ibatis的实体则是提供了一个用来传递数据的载体,xml中则需要首先配置需要的sql语句,其次sql语句的返回的字段及对应的实体的映射,再次sql语句对应的参数的配置(可以为基本类型或自己建的实体类型)
作者也是在新项目中用到了ibatis,所以会用一段时间来研究学习ibatis,希望跟各位读者共同学习和进步。
相关文章推荐
- Ibatis基础知识:#与$的区别
- hibernate和ibatis的区别
- java基础知识—JAVA中抽象类和接口的区别
- Hibernate与iBatis的区别
- java基础知识(三)-- String使用equals和==比较的区别
- ibatis和hibernate的区别 2
- UNIX基础知识之系统调用与库函数的区别与联系
- CSS基础知识二(段落设置CSS效果、图片边框、div和span区别、CSS控制背景、CSS控制链接)
- [C#基础知识]HashMap与Hashtable的区别
- 基础知识系列☞C#中→属性和字段的区别
- 多态、抽象类、接口、区别(java基础知识九)
- JAVA基础知识之多线程——三种实现多线程的方法及区别
- 浅谈Hibernate和Ibatis区别
- Java基础知识强化100:jsp和servlet有什么区别
- Ibatis与Hibernate的区别
- Java基础知识——Sting、StringBuild、StringBuffer的区别
- hibernate基础知识
- iBATIS与Hibernate的区别
- 硬件电路基础知识(30)---RS232、RS485、RS422、RJ45接口的区别
- ibatis与hibernate区别