Eclipse整合Hibernate操作Sqlserver執行個體

來源:互聯網
上載者:User

標籤:sed   nat   tin   code   dial   gif   final   說明   控制   

Eclipse搭建Hibernate開發環境,使用的資料庫是Sqlserver2008

1、需要成功安裝Eclipse,如果沒有安裝可以上網查資料。

2、Eclipse安裝成功後,點擊Help--> Eclipse Marketplace,搜尋JBoss Tools,選擇Hibernate的組件,點擊install,選擇要安裝的JBoss外掛程式,一路預設即可,安裝完後重啟Eclipse。 

  

3、安裝成功後,New-->Other,輸入h,可以看到Hibernate的組件,說明安裝Hibernate外掛程式成功。

  

4、第一個Hibernate工程,剛開始學習只需建立Java Project即可。工程建好後,需要匯入Hibernate的jar包(為了保險,全部匯入,我這裡用的Hibernate4),可以在這裡下載:https://pan.baidu.com/s/1iIwykYn5WngEUvF1MqmSoA,密碼:加:z1639701126,裡麵包括項目所需所有jar包和原始碼(原創不易,需要鼓勵哈)

  

5、如果還有同學不知道怎麼導包,沒關係,我來教你,右鍵項目-->Build path-->Configure Build Path-->libraries-->Add extenal jars,找到剛才下載的包,全部添加進來即可,(不要忘了jdbc哦,我這裡選擇的是sqljdbc4)。

  

6、現在項目中所需的環境已經搭建好了,接下來進行代碼層面的操作。進入項目建立持久化層的包和類,我這裡是News.java為例。

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

這裡需要注意的是:

  • 要提供一個無參構造器。以便Hibernate可以使用Constructor.newInstance()來執行個體化持久化類。
  • 提供一個識別屬性。通常映射為資料庫表的主鍵欄位。如果沒有該屬性,一些功能將不起作用,如:Session.saveOrUpdate()。
  • 為持久化類的欄位聲明存取方法(get/set)。Hibernate對JavaBeans風格的屬性實行持久化。
  • 使用非final類。在運行時組建代理程式是Hibernate的一個重要的功能。如果持久化類沒有實現任何介面,Hibnernate 使用 CGLIB 組建代理程式。如果使用的是 final 類,則無法產生CGLIB代理。
  • 重寫eqauls()和hashCode()方法。如果需要把持久化類的執行個體放到Set中(當需要進行關聯映射時),則應該重寫這兩個方法。 

 7、建立對象-關係對應檔: 

  右鍵持久化類所在的包名,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>

8、建立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>

9、測試: 
  建立一個測試類別,用下面的代碼測試儲存一個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();    }    }

 

10、直接執行代碼就可以,Sql語句的執行過程會列印在控制台,如下:

  

11、資料庫中會又建立NEWS表和插入的資料

  

 

Eclipse整合Hibernate操作Sqlserver執行個體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.