小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Hibernate(5.2.10)快速入門 (一) 初識Hibernate、框架搭建、xml基本配置

 昵稱27831725 2017-10-21
原創(chuàng) 2017年08月21日 21:13:10
        一、初識別Hibernate
                Hibernate是一個開放源代碼的ORM(對象關系映射)框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數(shù)據(jù)庫表建立映射關系,是一個全自動的orm框架,hibernate
                可以自動生成SQL語句,自動執(zhí)行,使得我們可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫, Hibernate可以應用在任何使用JDBC的場合。
        二、框架搭建
                Hibernate框架搭建我以舉例子的形式一共分四個步驟
                        1、導Hibernate必需的jar包
                        2、配置持久層映射
                        3、配置Hibernate核心配置文件(hibernate.cfg.xml)
                        4、初始化SessionFactory
                1、普通Java項目
                        1、導Hibernate必需的jar包
                                Hibernate官網 http:///orm/downloads/
                                我們從Hibernate官網下載完hibernate壓縮包后,解壓后進入lib/required目錄,這里面的所有jar包都需要導入到我們的項目中去
                        2、配置持久層
                                所謂的配置持久層就是把遵循javaBean的Java類與數(shù)據(jù)庫表建立映射關系,為了更加理解,這里我用一個java類來演示一下:
                                1、遵循JavaBean的TestEntity類
  1. package com.example;  
  2. public class TestEntity {  
  3.     private int Tid;  
  4.     private String Tname;  
  5.       
  6.     public TestEntity(){};  
  7.     public TestEntity(int tid,String tname){  
  8.         this.Tid=tid;  
  9.         this.Tname=tname;  
  10.     }  
  11.     public TestEntity(String tname){  
  12.         this.Tname=tname;  
  13.     }  
  14.     public int getTid() {  
  15.         return Tid;  
  16.     }  
  17.     public void setTid(int tid) {  
  18.         Tid = tid;  
  19.     }  
  20.     public String getTname() {  
  21.         return Tname;  
  22.     }  
  23.     public void setTname(String tname) {  
  24.         Tname = tname;  
  25.     }  
  26. }  


                                2、映射配置文件
                                        我們創(chuàng)建一個TestEntity.hbm.xml文件,內容如下:
  1. <?xml version="1.0"?>  
  2. <!--  
  3.   ~ Hibernate, Relational Persistence for Idiomatic Java  
  4.   ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.  
  5.   ~ See the lgpl.txt file in the root directory or <http://www./licenses/lgpl-2.1.html>.  
  6.   -->                                
  7. <!DOCTYPE hibernate-mapping PUBLIC  
  8.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  9.     "http://www./dtd/hibernate-mapping-3.0.dtd">  
  10. <!--package屬性對應于我們java類所在的包名-->  
  11. <hibernate-mapping package="com.example">  
  12.   
  13.   
  14.     <!--name對應的Java類的類名(不需要加上包名),table對應數(shù)據(jù)庫與之對應的表名-->  
  15.     <class name="TestEntity" table="TESTENTITY">  
  16.   
  17.   
  18.     <!-- <id/>標簽代主鍵列,name對應Java類中屬性名,column對應數(shù)據(jù)庫中列名(此屬性不填寫默認Java類中屬性名)-->  
  19.     <id name="Tid" column="Tid">  
  20.         <!--generator通知Hibernate用于為該實體生成主鍵值的策略,class值"increment":用于為long, short或者int類型生成唯一標識-->  
  21.         <generator class="increment"/><!--詳細了解generator可去百度科普-->  
  22.     </id>  
  23.      <!--property對應除主鍵外的其他列,其中可以用type屬性來設置該列的數(shù)據(jù)存儲類型,如果在映射中未指定type屬性,-->  
  24.      <!--則Hibernate將嘗試自動確定正確的轉換和映射類型,方法是使用Java反射來確定已聲明屬性的Java類型,并為該Java類型使用默認映射類型。-->  
  25.     <property name="Tname"   column="TNAME"/> <!--想了解詳細type屬性值的可以去百度科普一下,這里我就不一一列出了-->  
  26.     </class>  
  27.   
  28.   
  29. </hibernate-mapping>   



                        3、配置Hibernate核心配置文件(hibernate.cfg.xml)
                                在我們的src文件下創(chuàng)建一個名為hibernate.cfg的xml文件,文件中的內容如下所示:
  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <!--  
  3.   ~ Hibernate, Relational Persistence for Idiomatic Java  
  4.   ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.  
  5.   ~ See the lgpl.txt file in the root directory or <http://www./licenses/lgpl-2.1.html>.  
  6. -->  
  7. <!DOCTYPE hibernate-configuration PUBLIC  
  8.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  9.     "http://www./dtd/hibernate-configuration-3.0.dtd">  
  10. <hibernate-configuration>  
  11.     <session-factory>  
  12.     <!-- 數(shù)據(jù)庫連接設置 -->  
  13.                                         <!--數(shù)據(jù)庫驅動-->  
  14.     <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  15.                                         <!--數(shù)據(jù)庫連接-->  
  16.     <property name="connection.url">jdbc:mysql://localhost:3306/test1</property>  
  17.                                         <!--數(shù)據(jù)庫用戶名-->  
  18.     <property name="connection.username">root</property>  
  19.                                         <!--數(shù)據(jù)庫密碼-->  
  20.     <property name="connection.password">123456</property>  
  21.   
  22.   
  23.     <!-- JDBC連接池最大連接數(shù)量(使用內置的) -->  
  24.     <property name="connection.pool_size">1</property>  
  25.   
  26.   
  27.     <!-- 指定與Hibernate進行交互的特定SQL方言。 -->  
  28.     <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>  
  29.   
  30.   
  31.     <!--禁用二級緩存  -->  
  32.     <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>  
  33.   
  34.   
  35.     <!-- 將所有執(zhí)行的SQL都打印出來 -->  
  36.     <property name="show_sql">true</property>  
  37.   
  38.   
  39.     <!-- 在啟動時刪除并重新創(chuàng)建數(shù)據(jù)庫模式 -->  
  40.     <property name="hbm2ddl.auto">create</property>  
  41.   
  42.   
  43.         <!--將持久類的映射配置文件添加到配置中-->  
  44.     <mapping resource="com/example/TestEntity.hbm.xml"/>  
  45.   
  46.   
  47.     </session-factory>  
  48. </hibernate-configuration>  


                        4、初始化SessionFactory
                                這里我們建一個Test類 運行main方法來初始SessionFactory,至此我們一個hibernate基本框架就搭建好了,當我們的程序運行起來后,hibernate
                                會根據(jù)我們設置的持久層映射文件在數(shù)據(jù)庫創(chuàng)建相應的表。
  1. package com.example;  
  2. import org.hibernate.Session;  
  3. import org.hibernate.SessionFactory;  
  4. import org.hibernate.boot.MetadataSources;  
  5. import org.hibernate.boot.registry.StandardServiceRegistry;  
  6. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;  
  7.    
  8. public class Test {  
  9.     private SessionFactory sessionFactory;  
  10.   
  11.   
  12.     protected void initDataBase() throws Exception {  
  13.         //為應用程序設置了一個SessionFactory!  
  14.         final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()  
  15.                 .configure() //配置文件來自 hibernate.cfg.xml  
  16.                 .build();  
  17.         try {  
  18.             sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();  
  19.         }  
  20.         catch (Exception e) {  
  21.             //注冊表將被SessionFactory銷毀,但是我們在構建SessionFactory時遇到了麻煩,所以手動破壞它。  
  22.             StandardServiceRegistryBuilder.destroy( registry );  
  23.             e.printStackTrace();  
  24.         }  
  25.     }  
  26.   
  27.   
  28.     public static void main(String[] args) {  
  29.         try {  
  30.             Test test=new Test();  
  31.             test.initDataBase();//初始SessionFactory  
  32.         } catch (Exception e) {  
  33.             // TODO Auto-generated catch block  
  34.             e.printStackTrace();  
  35.         }  
  36.     }  
  37. }  

                2、maven項目
                        maven項目其他配置與普通的Java項目都大致相同,只是我們jar包不需要我們手動添加進去,只需要在我們的maven配置文件pom.xml中添加相應的hibernate的核心依賴即可
                        hibernate核心依賴:
  1. <dependency>  
  2.    <groupId>org.hibernate</groupId>  
  3.    <artifactId>hibernate-core</artifactId>  
  4.    <version>5.2.10.Final</version>  
  5. </dependency>  

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多