HIBERNATE
- ORM(object relational mapping),简化数据库操作;
- 作用于DAO层。
优势:
- 优秀的java持久化层解决方案;
- 主流的对象-关系映射工具;
- 简化了JDBC繁琐的编码;
- 将数据库的连接信息都存放在配置文件。
- dao层操作与数据库无关,当更换oracle、mysql、db2、SQLserver数据库时dao层代码无需做任何变动。
- 将dao层对类和对象的操作,间接转换成SQL语句。
- 两类XML文件:总配置文件;实体类映射文件。
总配置文件(hibernate.cfg.xml):负责配置数据库连接信息。
实体类映射文件(*.hbm.xml):负责配置实体类和数据库表的映射关系,以及实体类属性和表字段的映射关系。
持久化与ORM(ObjectRelationalMapping)
- 编写程序的时候,以面向对象的方式处理数据;
- 保存数据的时候,却以关系型数据库的方式存储。
ORM解决方案包含下面四个部分: - 在持久化对象上执行基本的增删改查操作;
- 对持久化对象提供一种查询语言或者API;
- 对象关系映射工具;
- 提供与事务对象交互、执行检查、延迟加载以及其他优化功能。
准备Hibernate的步骤: - 下载并部署JAR包;
- 编写hibernate配置文件;
- 创建持久化类和映射文件;
- 需要在总配置文件中通过标签,关联实体类映射文件。
- Session.save(obj):执行插入,根据主键ID值,查询对应记录,并自动封装为java对象。
- 显示解析的SQL语句,并使SQL语句块状显示。
true
true - 设置方言,使用的数据库不同,对应方言不同。
org.hibernate.dialect.Oracle9Dialect
- 动态更新。Merge更新语句时:没有改变的属性值不更。
<class name="entity.Dept" table="dept" dynamic-update="true">
//读取总配置文件
Configuration conf=new Configuration().configure();
//创建SessionFactory对象
SessionFactory sf=conf.buildSessionFactory();
//打开一个session会话
Session session=sf.openSession();
//开启事务
Transaction tx=session.beginTransaction();
Dept d=new Dept();
d.setDeptNo(1001);
//插入数据,框架底层执行insert into
session.save(d);
//提交事务
tx.commit();
//关闭会话
Session.close();
Struts2
- 汲取了Struts的优点;
- 以WebWork为核心;
- 拦截器;
- 可变和可重用的标签。
Spring
- 依赖注入容器/AOP实现;
- 声明式事务;
- 简化Java EE应用;
- 粘合剂,将大家组装到一起。