Hibernate是一個開源的ORM框架,對JDBC進行了輕量級的封裝,可使用面向對象的思惟操做數據庫java
輕量級的JavaEE應用的持久層解決方案,關係型數據庫ORM框架mysql
操做Java對象,經過映射的關聯操做數據庫的表結構(對象屬性,數據庫字段 )sql
ORM(Object Relational Mapping)對象關係映射數據庫
O:JavaBeansession
R:表結構app
M:XML配置文件框架
經過操做對象的方式來操做數據庫的表結構dom
Hibernate的優勢:性能
一、對JDBC訪問數據庫的代碼進行了封裝,簡化了DAO層的重複性代碼ui
二、基於JDBC的主流映射框架,優秀的ORM實現,簡化了DAO層的編碼
三、性能好,輕量級框架,映射靈活,支持不少關係型數據庫,從一對多到多對多的各類複雜關係
入門
一、導包
(1)MySQL驅動包
mysql-connector-java
(2)Hibernate包 lib/required下
antlr
dom4j
geronime-jta
hibernate-commons-annotations
hibernate-core
hibernate-jpa
jandex
javaassist
jboss-logging
(3)日誌包
log4j(日誌實現)
slf4j(接口)
slf4j-log4j(橋樑 映射--XML配置文件 )
二、建表和JavaBean
用包裝類,屬性和字段一致
須要提早建表,hibernate能夠映射生成表結構,可是不能生成表
三、映射配置文件 hbm.xml
JavaBean有多少個就有多少映射文件hbm.xml,JavaBean和映射文件一一對應
(1)在JavaBean所在的包下建立映射的配置文件 類名.hbm.xml
xml配置文件引入約束,引入3.0,4.0不向下兼容
不能上網須要配置,關閉xml再次打開會有提示
(2)映射配置文件
<hibernate-mapping> <class name="com.guojie.domain.Customer" table="cst_customer"> <!-- 配置id,其中name是JavaBean的屬性,column是表的字段 --> <id name="cst_id" column="cst_id"> <!-- 主鍵生成策略 --> <generator class="native" /> </id> <!-- 配置其餘屬性 --> <property name="cust_name" column="cust_name" /> </class> </hibernate-mapping>
四、核心配置文件cfg.xml
<hibernate-configuration> <!-- 一個數據庫對應一個sessionFactory --> <session-factory> <!-- 必須配置的參數5個:4大參數,方言 --> <property name="hibernate.connection.driver.class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate-demo</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.username">root</property> <!-- 數據庫方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 映入配置映射文件 映射配置文件右鍵--路徑去掉com包以前的--> <mapping resource="com/guojie/domain/Customer.hbm.xml" /> </sessionFactory> </hibernamte-configuration>
五、入門程序