Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。
流程圖:
核心接口
Hibernate的核心接口一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這6個核心接口分別加以介紹。
Session
SessionFactory
Transaction
Query
Criteria
Configuration
hibernate的優點
-
Hibernate會處理映射的Java類來使用XML文件,數據庫表和無需編寫任何一行代碼。
-
提供了簡單的API,用於直接從數據庫中存儲和檢索Java對象。
-
如果有變化,數據庫或任何表中的那么只需要修改XML文件的屬性。
-
抽象掉不熟悉的SQL類型,並提供我們解決熟悉的Java對象。
-
Hibernate不要求應用服務器進行操作。
-
操縱數據庫對象的復雜關聯。
-
盡量減少與智能讀取策略數據庫的訪問。
-
提供數據的簡單查詢。
hibernate配置
先下載hibernate所需包,我下載的是hibernate-distribution-3.6.4.Final,解壓縮下載的文件,目錄結構如下所示。
然后將lib中的包拷貝到項目中即可。
同時也可以使用myeclipse直接加載hibernate框架。
配置文件hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="connection.url"> jdbc:mysql://127.0.0.1:3306/java_web </property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="myeclipse.connection.profile">Test</property> <property name="hbm2ddl.auto">update</property> <property name="hibernate.connection.autocommit">true</property> <property name="show_sql">true</property> <property name="defaultAutoCommit">true</property> <property name="maxActive">10000</property> <property name="maxIdle">50</property> <property name="maxWait">3000</property> <property name="initialSize">10</property> <property name="minIdle">20</property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> </session-factory> </hibernate-configuration>