歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate學習入門教程

其實一兩個月前就在了解Hibernate方面的知識了,但一直以來,都沒有好好的總結,而且一直使用的是myeclipse,感覺有些傻瓜式的操作就可以搭建起Hibernate的開發環境,但這樣一點都不好,沒有理解到Hibernate到底是怎麼配置的,所以你今天特使用Eclipse來一步一步搭建Hibernate的開發環境,下面,正式進入正題。

在Hibernate中開啟日志 http://www.linuxidc.com/Linux/2015-07/120499.htm

Hibernate+JUnit測試實體類生成數據庫表  http://www.linuxidc.com/Linux/2015-07/120161.htm

Hibernate整體理解 http://www.linuxidc.com/Linux/2014-07/104405.htm

Hibernate的映射機制  http://www.linuxidc.com/Linux/2014-12/110265.htm

  • 新建一個web項目,名字就隨便吧,你喜歡什麼名字就什麼吧,這是我的截圖。

引入hibernate的依賴jar包,我使用的是hibernate-release-4.3.10.Final,下載好後解壓,打開壓縮包下的lib目錄下的require文件夾,這是hibernate的所以來的必須的jar包,接下來,在剛才新建的項目裡新建一個libs文件夾,將剛才的所說的jar包copy進去,另外,由於我們需要連接MySQL數據庫以及使用JUnit測試,將所需的mysql-connector-java-5.0.8-bin.jar和junit-4.5.jar兩個jar包引用進去,關於這些jar包,可以在網上搜索。接下來,就是把這些jar包添加到編譯環境中去,選中libs下的jar包,右擊選擇Build Path –>Add to Build Path,這樣就把依賴jar包成功添加進去了。

繼續往下,我們需要配置最重要的hibernate配置文件hibernate.cfg.xml以及進行日志處理的log4j.properties屬性文件:打開上一步解壓後的hibernate文件夾,打開project—>etc文件夾,將該文件夾下的hibernate.cfg.xml和log4j.properties文件拷貝到項目的src文件夾下,打開hibernate.cfg.xml文件,將session-factory標簽中的內容替換成如下的內容:

<session-factory>
        <!--配置mysql數據庫的連接參數 -->
       
       
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 驅動程序名 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 數據庫名稱 -->
        <property name="hibernate.connection.url">jdbc:mysql:///hibernatedemo</property>
        <!-- 用戶名 -->
        <property name="hibernate.connection.username">root</property>
        <!-- 密碼 -->
        <property name="hibernate.connection.password">yzp140103</property>
       
       
    </session-factory>

這樣就配置好了。

接下來,要做的就是做開發測試了:在項目的src目錄下新建一個實體類包com.joe.entity,在該包下新建一個實體類Student,代碼如下:

 

package com.joe.entity;

import java.io.Serializable;

public class Student implements Serializable {
    /**
    *
    */
    private static final long serialVersionUID = 5548279324472937805L;
    private int id;
    private String name;
    private int age;
   
    /**
    * 申明無參構造函數
    */
    public Student(){
       
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

}

 

對了,說明下,必須申明一個無參的構造函數,這是必須的哦!

 

關鍵問題來了,我們不是說hibernate是做數據持久化的嗎?那說百了就是要和數據庫打交道呗,對於Student類,怎麼和數據庫關聯呢,那我們就要說說這對象關系映射文件了Xxx.hbm.xml文件了,其中的Xxx是實體類的名稱,那我們的Student.hbm.xml文件的內容就是:

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
    <!-- 一個class標簽對應一個實體類,name屬性指定實體類名稱,table屬性指定關聯的數據庫表 -->
    <class name="com.joe.entity.Student" table="stu_tab">
        <!-- 主鍵 -->
        <id name="id" column="stu_id">
            <!-- 主鍵的生成策略 -->
            <generator class="native"></generator>
        </id>
        <!-- 其他屬性,name對應實體類的屬性,column對應關系型數據庫表的列 -->
        <property name="name" column="stu_name"></property>
        <property name="age" column="stu_age"></property>
    </class>
</hibernate-mapping>

 

將該文件同樣添加到com.joe.entity包下,這樣就行了嗎?答案當然是否定的,我們還要將這個實體類注冊到hibernate.cfg.xml文件中,在session-factory標簽下面最後一個property標簽後添加:

<!-- 添加Student.hbm.xml映射文件 -->
        <mapping resource="com/joe/entity/Student.hbm.xml"/>

再往下走,我們來測試一下,在項目下新建一個資源文件夾test,再在test文件下新建測試包com.joe.test,在該包下新建一個StudentTest.java類,並書寫如下代碼:

 

package com.joe.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;

import com.joe.entity.Student;

public class StudentTest {
    /**
    * @Test是junit4測試的注解方式申明
    *  根據對象關系映射文件生成DDL
    */
    @Test
    public  void createTable(){
        Configuration cfg=new Configuration().configure();
        SchemaExport se=new SchemaExport(cfg);
        se.create(true, true);
    }
    }

 

當然,也可以使用如下的方式生成DDL,在hibernate.cfg.xml問價中新增:

<!-- 生成DDL的配置 -->
        <property name="hibernamr.hbm2ddl.auto">create |update</property>

最後,執行StudentTest.java類,選擇Run As—>JUnit Test, 在控制台可以看到如下的信息,那就證明成功了:

當然,也可以打開MySQL ,進一步驗證。

好了,hibernate的開發環境就算正式搭建完成。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-08/121498p2.htm

Copyright © Linux教程網 All Rights Reserved