JavaWeb学习教程之HibernateAndMyBatis的理解-创新互联
前言
创新互联公司的客户来自各行各业,为了共同目标,我们在工作上密切配合,从创业型小企业到企事业单位,感谢他们对我们的要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。专业领域包括成都网站建设、成都网站设计、电商网站开发、微信营销、系统平台开发。在JavaWeb开发中,最经典的就是SSH框架组合和SSM框架组合,现在很多IT公司愿意使用SSM,对于这里的H和M即Hibernate和MyBatis,今天简单来说道说道。
班门弄斧
上课时,我经常跟学生说,学习任何一门技术,一定要弄明白:
- What:这个东西是什么?连这个技术是什么都说不清,人家会相信你精通吗?
- Why:为什么要用?不要盲目学,一门技术的产生肯定有其背后的原因,解决了一个什么难题?还是简化了开发等等?
- When:什么时候需要用?学完了不会灵活运用也不行。
- How:怎么用?首先最重要的弄清楚原理,多思考,多应用,多犯错,才会成长。
知识讲解
Hibernate和MyBatis都是很流行的ORM(对象关系映射,说白了就是一种和数据库进行映射的技术)持久化层框架,其实质是还是对JDBC进行了封装,方便我们使用,简化我们的开发。先弄明白几个问题:
- 什么是对象持久化:说白了就是把对象保存到数据库或者文件中
- 传统开发:界面(View) --------- 业务层(SQL语句) --------- 数据库
- 产生的问题:
一旦更换底层的数据库,很多操作都要重写
JDBC冗余代码过多(这是Hibernate发明的最初动力) - 引入持久层开发:界面(View) --------- 业务层(HQL语句、动态查询语句) --------- 持久层 --------- 数据库
为什么引入持久层就可以解决这个问题呢?解析:在持久层可以引入一个机制,当作一个翻译,针对底层不同的数据库,把HQL语句、动态查询语句翻译成不同的SQL语句,这样就解决了更换数据库后也不需要改SQL语句的问题,而且代码量也会大大降低。
说的这么好,那么Hibernate和MyBatis到底是怎么实现上述所说的方案的呢,也就是他们的ORM怎么来实现?
Hibernate
在Hibernate中这个机制就是一个配置文件hibernate.cfg.xml(放在src目录下)
jdbc:mysql://localhost/hibernate root saber com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect none true true org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider 5 20 300 100 3000 thread
网页名称:JavaWeb学习教程之HibernateAndMyBatis的理解-创新互联
本文URL:http://azwzsj.com/article/dpohgs.html