如何使用Hibernate?
1.导入相关依赖
Hibernate是对jdbc的封装,所以需要导入mysql的驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
Hibernate只要导入核心包即可
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate-version}</version>
</dependency>
2.创建Hibernate配置文件
hibernate.cfg.xml核心配置:session-factory(标签)(connection.username,connection.password,connection.driver_class),C3P0连接池,数据库方言(orcal,mysql),辅助信息打印,格式化sql语句,<property name="show_sql">true</property>,<property name="format_sql">true</property>
SessionFactory(接口):针对单个数据库映射经过编译的内存镜像文件,将数据库转换为一个java可以识别的镜象文件。
构建SessionFactory非常消耗资源,所以通常一个工程只需要创建一个SessionFactory。
3.创建实体类
4.创建实体类-关系映射文件(ORM)
实体类和表关联起来,在java代码里,是对类进行查询,而不是对表查询。
5.实体关系映射文件注册到Hibernate的配置文件中
<mapping resource="com/XXX/XXX/XXX.hbm.xml"></mapping>
5.使用Hebernate的API
创建Configuration:Configuration configuration = new Configuration().configure();
获取SessionFaction:SessionFactory sessionFactory = configuration.buildSessionFactory();
获取Session:Session session =sessionFactory.openSession();
通过对session对象的操作来完成对数据的操作。
People people = new People();
people.setName("张三");
people.setMoney(1000.0);
session.save(people);
session.beginTransaction().commit();
session.close();
6.pom.xml中需要配置resource
Hiberanate核心API
Criteria(QBC查询 Query by Criteria)
Criteria是一个完全面向对象(查询针对对象不针对表),可扩展条件查询API,通过他完全不需要考虑数据库底层怎么实现以及SQL语句怎么编写的,他是Hibernate框架的核心查询对象。
使用Criteria对象查询数据的主要步骤:
1.获得Hibernate的Session对象
2.通过Session获得Criteria对象
3.使用Restrictions的静态方法创建Critertion条件对象。Restriction类中提供了一系列用于设定查询条件的静态方法,这些静态方法都返回Criteria实例,每个Critertion实例代表一个查询条件。
4.向Criteria对象中添加Criterion查询条件。Criteria的add()方法用于加入查询条件。
5.执行Criteria的list()或uniqueResult()获得结果。
Session session = getSessionFactory().openSession();
Criteria criteria = session.createCriteria(RecordMediaBatch.class);
Criterion gtype = Restrictions.eq("type", type);
criteria.add(gtype);
criteria.setProjection(null);
List<RecordMediaBatch> list = criteria.list();
Hibernate.initialize(list);
return list;
Configuration
使用Hibernate,首先需要创建Configuration实例,Configuration实例主要用于启动,加载,管理Hibernate的配置文件信息。在启动Hibernate的过程中,Configuration实例首先确定Hibernate配置文件的位置,然后读取相关配置,最后创建一个唯一的SessionFactory实例。Configuration对象只存在于系统初始化阶段,它将SessionFactory创建完成后,就完成了了自己的使命。
SessionFactory
SessionFactory接口负责Hibernate的初始化和建立Session对象。它在Hibernate中起到一个缓冲区的作用,Hibernate可以将自动生成的sql语句,映射数据以及某些可以重复利用的数据放在这个缓冲区中。同时他还保存了对数据库配置的所有映射关系,维护了当前的二级缓存。
Session
Transaction
Query