乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       昵稱(chēng)27831725 2017-10-21
      原創(chuàng) 2017年08月21日 21:13:10
              一、初識(shí)別Hibernate
                      Hibernate是一個(gè)開(kāi)放源代碼的ORM(對(duì)象關(guān)系映射)框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,hibernate
                      可以自動(dòng)生成SQL語(yǔ)句,自動(dòng)執(zhí)行,使得我們可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù), Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合。
              二、框架搭建
                      Hibernate框架搭建我以舉例子的形式一共分四個(gè)步驟
                              1、導(dǎo)Hibernate必需的jar包
                              2、配置持久層映射
                              3、配置Hibernate核心配置文件(hibernate.cfg.xml)
                              4、初始化SessionFactory
                      1、普通Java項(xiàng)目
                              1、導(dǎo)Hibernate必需的jar包
                                      Hibernate官網(wǎng) http:///orm/downloads/
                                      我們從Hibernate官網(wǎng)下載完hibernate壓縮包后,解壓后進(jìn)入lib/required目錄,這里面的所有jar包都需要導(dǎo)入到我們的項(xiàng)目中去
                              2、配置持久層
                                      所謂的配置持久層就是把遵循javaBean的Java類(lèi)與數(shù)據(jù)庫(kù)表建立映射關(guān)系,為了更加理解,這里我用一個(gè)java類(lèi)來(lái)演示一下:
                                      1、遵循JavaBean的TestEntity類(lèi)
      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)建一個(gè)TestEntity.hbm.xml文件,內(nèi)容如下:
      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屬性對(duì)應(yīng)于我們java類(lèi)所在的包名-->  
      11. <hibernate-mapping package="com.example">  
      12.   
      13.   
      14.     <!--name對(duì)應(yīng)的Java類(lèi)的類(lèi)名(不需要加上包名),table對(duì)應(yīng)數(shù)據(jù)庫(kù)與之對(duì)應(yīng)的表名-->  
      15.     <class name="TestEntity" table="TESTENTITY">  
      16.   
      17.   
      18.     <!-- <id/>標(biāo)簽代主鍵列,name對(duì)應(yīng)Java類(lèi)中屬性名,column對(duì)應(yīng)數(shù)據(jù)庫(kù)中列名(此屬性不填寫(xiě)默認(rèn)Java類(lèi)中屬性名)-->  
      19.     <id name="Tid" column="Tid">  
      20.         <!--generator通知Hibernate用于為該實(shí)體生成主鍵值的策略,class值"increment":用于為long, short或者int類(lèi)型生成唯一標(biāo)識(shí)-->  
      21.         <generator class="increment"/><!--詳細(xì)了解generator可去百度科普-->  
      22.     </id>  
      23.      <!--property對(duì)應(yīng)除主鍵外的其他列,其中可以用type屬性來(lái)設(shè)置該列的數(shù)據(jù)存儲(chǔ)類(lèi)型,如果在映射中未指定type屬性,-->  
      24.      <!--則Hibernate將嘗試自動(dòng)確定正確的轉(zhuǎn)換和映射類(lèi)型,方法是使用Java反射來(lái)確定已聲明屬性的Java類(lèi)型,并為該Java類(lèi)型使用默認(rèn)映射類(lèi)型。-->  
      25.     <property name="Tname"   column="TNAME"/> <!--想了解詳細(xì)type屬性值的可以去百度科普一下,這里我就不一一列出了-->  
      26.     </class>  
      27.   
      28.   
      29. </hibernate-mapping>   



                              3、配置Hibernate核心配置文件(hibernate.cfg.xml)
                                      在我們的src文件下創(chuàng)建一個(gè)名為hibernate.cfg的xml文件,文件中的內(nèi)容如下所示:
      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ù)庫(kù)連接設(shè)置 -->  
      13.                                         <!--數(shù)據(jù)庫(kù)驅(qū)動(dòng)-->  
      14.     <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
      15.                                         <!--數(shù)據(jù)庫(kù)連接-->  
      16.     <property name="connection.url">jdbc:mysql://localhost:3306/test1</property>  
      17.                                         <!--數(shù)據(jù)庫(kù)用戶(hù)名-->  
      18.     <property name="connection.username">root</property>  
      19.                                         <!--數(shù)據(jù)庫(kù)密碼-->  
      20.     <property name="connection.password">123456</property>  
      21.   
      22.   
      23.     <!-- JDBC連接池最大連接數(shù)量(使用內(nèi)置的) -->  
      24.     <property name="connection.pool_size">1</property>  
      25.   
      26.   
      27.     <!-- 指定與Hibernate進(jìn)行交互的特定SQL方言。 -->  
      28.     <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>  
      29.   
      30.   
      31.     <!--禁用二級(jí)緩存  -->  
      32.     <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>  
      33.   
      34.   
      35.     <!-- 將所有執(zhí)行的SQL都打印出來(lái) -->  
      36.     <property name="show_sql">true</property>  
      37.   
      38.   
      39.     <!-- 在啟動(dòng)時(shí)刪除并重新創(chuàng)建數(shù)據(jù)庫(kù)模式 -->  
      40.     <property name="hbm2ddl.auto">create</property>  
      41.   
      42.   
      43.         <!--將持久類(lèi)的映射配置文件添加到配置中-->  
      44.     <mapping resource="com/example/TestEntity.hbm.xml"/>  
      45.   
      46.   
      47.     </session-factory>  
      48. </hibernate-configuration>  


                              4、初始化SessionFactory
                                      這里我們建一個(gè)Test類(lèi) 運(yùn)行main方法來(lái)初始SessionFactory,至此我們一個(gè)hibernate基本框架就搭建好了,當(dāng)我們的程序運(yùn)行起來(lái)后,hibernate
                                      會(huì)根據(jù)我們?cè)O(shè)置的持久層映射文件在數(shù)據(jù)庫(kù)創(chuàng)建相應(yī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.         //為應(yīng)用程序設(shè)置了一個(gè)SessionFactory!  
      14.         final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()  
      15.                 .configure() //配置文件來(lái)自 hibernate.cfg.xml  
      16.                 .build();  
      17.         try {  
      18.             sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();  
      19.         }  
      20.         catch (Exception e) {  
      21.             //注冊(cè)表將被SessionFactory銷(xiāo)毀,但是我們?cè)跇?gòu)建SessionFactory時(shí)遇到了麻煩,所以手動(dòng)破壞它。  
      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項(xiàng)目
                              maven項(xiàng)目其他配置與普通的Java項(xiàng)目都大致相同,只是我們jar包不需要我們手動(dòng)添加進(jìn)去,只需要在我們的maven配置文件pom.xml中添加相應(yīng)的hibernate的核心依賴(lài)即可
                              hibernate核心依賴(lài):
      1. <dependency>  
      2.    <groupId>org.hibernate</groupId>  
      3.    <artifactId>hibernate-core</artifactId>  
      4.    <version>5.2.10.Final</version>  
      5. </dependency>  

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多