hibernate入門知識-01

來源:互聯網
上載者:User

標籤:har   uil   開放   工程   入門知識   action   程式   j2ee   new   

1.Hibernate是一個開放原始碼的對象關係映射架構,它對JDBC進行了非常輕量級的對象封裝

2.是一個全自動的orm架構,hibernate可以自動產生SQL語句,自動執行,使得Java程式員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。

3.起源:2001年,澳大利亞墨爾本一位名為Gavin King的27歲的程式員,上街買了一本SQL編程的書,他厭倦了實體bean,認為自己可以開發出一個符合對象關係映射理論,並且真正好用的Java持久化層架構,因此他需要先學習一下SQL。這一年的11月,Hibernate的第一個版本發布了。

3.hibernate是完全的orm架構的一種(使用hql)...

4.建立maven工程,添加需要的依賴,在maven工程的pom.xml中添加兩個依賴

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.11.Final</version>
</dependency>

5.在src/main/java下建立:hibernate.cfg.xml主設定檔配置如下

  

<session-factory>

  <!--設定資料庫相關參數-->
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql:///hibernate?characterEncoding=UTF-8</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password">ou134568</property>

 

  <!-- 方言選擇,根據不同的資料庫 -->
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="show_sql">true</property><!-- 列印sql語句 -->

  <!-- 加入對應檔,javabean的映射設定檔 -->
  <!-- <mapping resource="po/User.hbm.xml"></mapping> -->
  <mapping resource="onetomany/Clazz.hbm.xml"></mapping>
  <mapping resource="onetomany/Students.hbm.xml"></mapping>
</session-factory>

 

6.在測試類別中,首先讀取主設定檔/產生服務註冊器/產生sessionfactory

  我們可以寫成一個工具類,這樣我們只要調用openSession()就可以了...

  org.hibernate.Session本質上是對java.sql.Connection的封裝

  

  public class DBUtils {
     private static Configuration CGF;
     private static SessionFactory FACTORY;
      static{
      //讀取主配置hibernate.cfg.xml檔案
      CGF = new Configuration().configure();
      //產生服務註冊器
      ServiceRegistry sr = new StandardServiceRegistryBuilder()
      .applySettings(CGF.getProperties()).build();
      //由服務註冊器來產生sessionfactory
      FACTORY = CGF.buildSessionFactory(sr);
      }


      public static Session openSession(){
      return FACTORY.openSession();
      }
      }

 

 7.測試方法--根據主設定檔和對應檔產生對應的表,把所有的有映射設定檔的實體類產生對應的表,如果已經存在則不產生

    public void test01(){

    //讀取hibernate.cfg.xml設定檔
    Configuration cfg = new Configuration().configure();
    //根據主設定檔--對應檔產生對應的表
    SchemaExport export = new SchemaExport(cfg);
    //產生表
    export.create(true,true);

     }

8.測試方法,將一個對象持久化(存入資料庫)

    public void test02(){

    Session session = DBUtils.openSession();

    session.beginTransaction();
    Clazz clazz = new Clazz();
    clazz.setClazzName("一年級");

    Students student01=new Students();
    student01.setStudentName("王五");
    student01.setClazz(clazz);

    Students student02=new Students();
    student01.setStudentName("張三");
    student01.setClazz(clazz);
    

    //儲存,要先儲存clazz.否則會異常

    session.save(clazz);
    session.save(student01);
    session.save(student02);
    

    //提交事務並關閉session
    session.getTransaction().commit();
    session.close();

    }

 

hibernate入門知識-01

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.