Eclipse集成Hibernate操做Sqlserver實例

Eclipse搭建Hibernate開發環境,使用的數據庫是Sqlserver2008java

一、須要成功安裝Eclipse,若是沒有安裝能夠上網查資料。sql

二、Eclipse安裝成功後,點擊Help--> Eclipse Marketplace,搜索JBoss Tools,選擇Hibernate的組件,點擊install,選擇要安裝的JBoss插件,一路默認便可,安裝完後重啓Eclipse。 數據庫

  

三、安裝成功後,New-->Other,輸入h,能夠看到Hibernate的組件,說明安裝Hibernate插件成功。微信

  

四、第一個Hibernate工程,剛開始學習只需新建Java Project便可。工程建好後,須要導入Hibernate的jar包(爲了保險,所有導入,我這裏用的Hibernate4),能夠在這裏下載:https://pan.baidu.com/s/1iIwykYn5WngEUvF1MqmSoA,密碼:加微信:z1639701126,裏面包括項目所需全部jar包和源代碼(原創不易,須要鼓勵哈)session

  

五、若是還有同窗不知道怎麼導包,不要緊,我來教你,右鍵項目-->Build path-->Configure Build Path-->libraries-->Add extenal jars,找到剛纔下載的包,所有添加進來便可,(不要忘了jdbc哦,我這裏選擇的是sqljdbc4)。app

  

六、如今項目中所需的環境已經搭建好了,接下來進行代碼層面的操做。進入項目新建持久化層的包和類,我這裏是News.java爲例。ide

import java.util.Date; public class News { private Integer id; private String title; private String content; private Date date; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public News(String title, String content, Date date) { super(); this.title = title; this.content = content; this.date = date; } public News() { // TODO Auto-generated constructor stub
 } }
View Code

這裏須要注意的是:sqlserver

  • 要提供一個無參構造器。以便Hibernate能夠使用Constructor.newInstance()來實例化持久化類。
  • 提供一個標識屬性。一般映射爲數據庫表的主鍵字段。若是沒有該屬性,一些功能將不起做用,如:Session.saveOrUpdate()。
  • 爲持久化類的字段聲明訪問方法(get/set)。Hibernate對JavaBeans風格的屬性實行持久化。
  • 使用非final類。在運行時生成代理是Hibernate的一個重要的功能。若是持久化類沒有實現任何接口,Hibnernate 使用 CGLIB 生成代理。若是使用的是 final 類,則沒法生成CGLIB代理。
  • 重寫eqauls()和hashCode()方法。若是須要把持久化類的實例放到Set中(當須要進行關聯映射時),則應該重寫這兩個方法。 

 七、建立對象-關係映射文件: 學習

  右鍵持久化類所在的包名,New -> Hibernate XML Mapping file(hbm.xml) -> 選擇News類 -> finish,將生成New類對應的對象-關係映射文件News.hbm.xml,把其中<id>下的<generator>的class屬性設置爲」native」,即指定主鍵的生成方式爲使用數據庫的本地方式: 測試

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-7-18 10:45:25 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="News" table="News">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>
        <property name="title" type="java.lang.String">
            <column name="TITLE" />
        </property>
        <property name="content" type="java.lang.String">
            <column name="CONTENT" />
        </property>
        <property name="date" type="java.util.Date">
            <column name="DATE" />
        </property>
    </class>
</hibernate-mapping>

八、建立Hibernate配置文件: 
  右鍵src目錄 -> New -> Hibernate Configuration File -> next,使用默認名字hibernate.cfg.xml,點擊finish,而後在該文件中配置數據庫鏈接相關的信息:

  

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
     <!-- 配置鏈接數據庫的基本信息 -->
        <property name="connection.username">用戶名</property>
        <property name="connection.password">你的密碼</property>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="connection.url">jdbc:sqlserver://你的電腦IP:1433;Database=數據庫名</property>

        <!-- 配置 hibernate 的基本信息 -->
        <!-- hibernate 所使用的數據庫方言 -->
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>       

        <!-- 執行操做時是否在控制檯打印 SQL -->
        <property name="show_sql">true</property>

        <!-- 是否對 SQL 進行格式化 -->
        <property name="format_sql">true</property>

        <!-- 指定自動生成數據表的策略 -->
        <property name="hbm2ddl.auto">update</property>

        <!-- 指定關聯的 .hbm.xml 文件,若是在包中就寫成,如:com/entity/Address.hbm.xml -->
        <mapping resource="News.hbm.xml"/>
    
    </session-factory>
</hibernate-configuration>

九、測試: 
  新建一個測試類,用下面的代碼測試保存一個New對象到數據庫,而後查找該記錄並輸出。

  

import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; public class Test { public static void test() { //建立一個 SessionFactory 對象
        SessionFactory sessionFactory = null; //建立Configuration對象:對應hibernate的基本配置信息和對象關係映射信息
        Configuration configuration = new Configuration().configure(); //建立一個 ServiceRegistry 對象: hibernate 4.x 新添加的對象 //hibernate 的任何配置和服務都須要在該對象中註冊後纔能有效.
        ServiceRegistry serviceRegistry = 
                        new ServiceRegistryBuilder().applySettings(configuration.getProperties()) .buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); // 建立一個 Session 對象
        Session session = sessionFactory.openSession(); // 開啓事務
        Transaction transaction = session.beginTransaction(); //執行保存和加載操做
        News news = new News("Java", "zhangsan", new Date(new java.util.Date().getTime())); session.save(news); //加載數據庫中id爲1的News記錄
        News news1 = (News) session.get(News.class, 1); System.out.println(news); //5. 提交事務 
 transaction.commit(); //6. 關閉 Session
 session.close(); //7. 關閉 SessionFactory 對象
 sessionFactory.close(); } public static void main(String[] args) { test(); } }

 

十、直接執行代碼就能夠,Sql語句的執行過程會打印在控制檯,以下:

  

十一、數據庫中會又新建NEWS表和插入的數據

  

相關文章
相關標籤/搜索