每個6大接口進行一句話總結。
1、Configuration接口:負責配置並啓動Hibernate
2、SessionFactory接口:負責初始化Hibernate
3、Session接口:負責持久化對象的CRUD操作
4、Transaction接口:負責事務
5、Query接口和Criteria接口:負責執行各種數據庫查詢
核心接口和類:
SessionFactory:
Configuration:
Transaction
Query
Query接口讓你方便地對數據庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數據庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,並最終執行查詢操作。緩存管理
Hibernate 中提供了兩級Cache(高速緩衝存儲器)一級別的緩存由hibernate管理的,一般情況下無需進行干預,如果在Session緩存中還不存在相應的對象,Hibernate就會把該對象加入到第一級緩存中。當清理緩存時,Hibernate會根據緩存中對象的狀態變化來同步更新數據庫。延遲加載機制
- package com.liang.hibernate;
- import java.util.Date;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
- public class Client {
- public static void main(String[]args){
- //讀取hibernate.cfg.xml文件
- Configuration cfg = new Configuration().configure();
- //建立SessionFactory
- SessionFactory factory =cfg.buildSessionFactory();
- //取得session
- Session session = null;
- try{
- //開啓session
- session = factory.openSession();
- //開啓事務
- session.beginTransaction();
- User user = new User();
- user.setName("jiuqiyuliang");
- user.setPassword("123456");
- user.setCreateTime(new Date());
- user.setExpireTime(new Date());
- //保存User對象
- session.save(user);
- //提交事務
- session.getTransaction().commit();
- }catch(Exception e){
- e.printStackTrace();
- //回滾事務
- session.getTransaction().rollback();
- }finally{
- if(session != null){
- if(session.isOpen()){
- //關閉session
- session.close();
- }
- }
- }
- }
- }
多對一 |
<many-to-one name=“” class=“” column=“”/> |
一對多 (Set) |
<set name=""> <key column=""></key> <one-to-many class=""/> </set> |
多對多 (Set) |
<set name="" table=""> <key column=""></key> <many-to-many class="" column=""/> </set> |