您的位置:首页 > 其它

从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的工作。

建好后的包如下:



这样就算结束我,就可以通过hibernate操作student类进而进行数据库中对应该表的各种操作了。

相对于hiberante,ibatis则要复杂一些。

相对于Hibernate等提供了全面的数据库封装机制的“全自动化”
,ibatis则提供了半自动化的操作。“全自动”ORM 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。ibatis的半自动化则需要用户自己编写sql语句,并编写sql语句参数和返回结果对应的POJO的映射文件。ibatis这样操作可以是用户在sql语句上下文章,使用户有更多的机会操作更复杂的sql语句。

ibatis通常使用方式如下:



如上图,基于ibatis的包结构图,其中model包对应的是实体,service对应的服务类,dao包对应的是dao层,此时dao有别于hibernate的dao层,hibernate是实体和数据库表中字段对应的一个xml配置文件即可。而ibatis的实体则是提供了一个用来传递数据的载体,xml中则需要首先配置需要的sql语句,其次sql语句的返回的字段及对应的实体的映射,再次sql语句对应的参数的配置(可以为基本类型或自己建的实体类型)

作者也是在新项目中用到了ibatis,所以会用一段时间来研究学习ibatis,希望跟各位读者共同学习和进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: