1.Hibernate框架有什么作用
Hibernate是一个数据库访问(持久层)框架,简化了对数据库的增删改查操作。Hibernate框架本质是对JDBC技术的封装。
---------------------------------------
EJB:企业级JavaBean,需要EJB容器才能使用。
EntityBean类型的EJB组件,可以与数据库记录进行映射。
Hibernate已被JBOSS收购,用它实现EntityBean组件.
------------------------------------------
Hibernate框架的优点如下:
a.简化了复杂的SQL语句,由Hibernate自动生成
b.Hibernate框架支持当前主流的各种数据库类型,
当进行数据库移植时,可以不用修改访问代码。
c.可以将数据库表的记录和实体对象映射。
2.Hibernate框架实现原理
Hibernate框架是基于ORM思想实现的。
ORM:Object Relation Mapping 对象关系映射。
指的是将应用程序中的对象和关系数据表中的记录进行映射。之后在应用程序只要对这些对象进行操作,就可以实现对数据库的操作。在插入时,可以将对象信息映射到数据表的记录;在查询时,可以将数据表记录映射成对象。
ORM工具:Hibernate,iBATIS,JPA等技术。
*3.Hibernate框架使用
1)Hibernate框架结构
a.实体类(n个)
用于封装数据库记录的对象
b.hibernate.cfg.xml (hibernate.properties)(1个)
主配置文件,定义了数据库连接参数和数据库类型等
c.hbm.xml映射描述文件(n个)
定义数据表和实体类之间的映射,属性和字段的映射 信息。
2)Hibernate使用步骤
a.先引入Hibernate和驱动开发包
b.添加Hibernate主配置
c.添加映射的实体类和映射描述文件
d.利用Hibernate API进行数据库操作
Cofiguration配置对象,用于加载主配置文件
SessionFactory对象,用于创建Session对象的工厂
Session对象,用于执行增删改查操作。
Query对象,用于执行Hibernate查询语句(HQL)。
Transaction对象,用于执行事务处理。
3)使用注意事项
a.事务管理
在进行增删改操作时,必须得加上事务管理。原因是
因为Hibernate不会自动提交,需要显示的commit();
b.Session基本使用
添加操作:session.save(user);
删除操作:session.delete(user);
更新操作: session.update(user);
按主键查询: session.load(实体类型,主键值);
session.get(实体类型,主键值);
获取事务: session.beginTransaction();
执行HQL:
Query query = session.createQuery(hql);
//执行hql返回List
List<User> list = query.list();
//执行hql返回Iterator
Iterator<User> it = query.iterator();
public class HibernateUtil1 {
private static SessionFactory sf;
#####################################################################
static{
//加载Hibernate主配置及映射信息
Configuration conf = new Configuration();
//默认加载src目录下
conf.configure("/hibernate.cfg.xml");
//获取SessionFactory
sf = conf.buildSessionFactory();
}
public static Session getSession(){
// Session session = sf.openSession();
//获取当前线程使用的Session,如果没有再创建一个新的
Session session = sf.getCurrentSession();
return session;
}
}