Hibernate - ORM框架

  • ORM(Object/Relation Mapping):Object指java对象,Relation指关系数据库,Hibernate是一个ORM框架,将java类映射到数据库,类映射为表,成员变量映射成表字段,变量类型就是字段类型的对应关系。

  • jdbc中,Java用的是面向对象模型,数据库用的是关系数据库模型。添加、修改数据时需要根据sql语句字段分别对应添加,是对象到关系的映射。查询时将每个列的内容提取出来,转换到对象的每个属性的,是关系到对象的映射。而现在Hibernate根据类的xml配置文件,底层已经将对象模型和关系模型的转换都封装好了。
    Hibernate - ORM框架
    Hibernate - ORM框架

  • 可移植性:比如MySQL换成Orecle数据库时,只需要将配置改改,不需要像以前去改语句。

  • 轻量级框架:现在基本都是轻量级框架,不像以前EJB那样,需要专门的服务器

  • 调优困难:因为Hibernatek看不到hql语句,hql语句没法修改。相对 MyBatis自定义sql语句来说,这是他的缺点,但开发效率高。

Hibernate - ORM框架
Hibernate - ORM框架

  • InnoDB:支持事务,性能低
  • MyISAM:不支持事务,相对性能高一点

Hibernate - ORM框架
Hibernate - ORM框架
Hibernate - ORM框架

  • 线程安全:可以被多个线程同时使用
  • 非线程安全:不能被多个线程同时使用,否则需要加锁(例如servlet是线程安全的,如果用1000个用户访问,tomcat只创建一个servlet。而Struts2的Action不是线程安全的,多个用户同时登录操作,用户名和密码会错乱)
  • SessionFactory是重量级的:SessionF actory要缓存SQL语句,要缓存映射文件。

Hibernate - ORM框架
Hibernate - ORM框架