久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

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

     昵稱27831725 2017-10-21
    原創 2017年08月21日 21:13:10
            一、初識別Hibernate
                    Hibernate是一個開放源代碼的ORM(對象關系映射)框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate
                    可以自動生成SQL語句,自動執行,使得我們可以隨心所欲的使用對象編程思維來操縱數據庫, 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類與數據庫表建立映射關系,為了更加理解,這里我用一個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、映射配置文件
                                            我們創建一個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對應數據庫與之對應的表名-->  
    15.     <class name="TestEntity" table="TESTENTITY">  
    16.   
    17.   
    18.     <!-- <id/>標簽代主鍵列,name對應Java類中屬性名,column對應數據庫中列名(此屬性不填寫默認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屬性來設置該列的數據存儲類型,如果在映射中未指定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文件下創建一個名為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.     <!-- 數據庫連接設置 -->  
    13.                                         <!--數據庫驅動-->  
    14.     <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
    15.                                         <!--數據庫連接-->  
    16.     <property name="connection.url">jdbc:mysql://localhost:3306/test1</property>  
    17.                                         <!--數據庫用戶名-->  
    18.     <property name="connection.username">root</property>  
    19.                                         <!--數據庫密碼-->  
    20.     <property name="connection.password">123456</property>  
    21.   
    22.   
    23.     <!-- JDBC連接池最大連接數量(使用內置的) -->  
    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.     <!-- 將所有執行的SQL都打印出來 -->  
    36.     <property name="show_sql">true</property>  
    37.   
    38.   
    39.     <!-- 在啟動時刪除并重新創建數據庫模式 -->  
    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
                                    會根據我們設置的持久層映射文件在數據庫創建相應的表。
    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>  

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

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 精品无码一区二区三区在线| 日韩系列精品无码免费不卡| 无码A级毛片免费视频内谢 | 国产97视频人人做人人爱| 国产激情视频一区二区三区| 99久久精品国产一区二区蜜芽| 国产欲女高潮正在播放| 在线观看国产成人无码| 亚洲 制服 丝袜 无码| 成在线人午夜剧场免费无码| 国产宅男宅女精品A片在线观看| 人妻少妇不满足中文字幕| 亚洲ΑV久久久噜噜噜噜噜| 亚洲中文字幕无码中字| 在线播放免费人成毛片| 国产色无码专区在线观看| 中文字幕在线亚洲日韩6页 | 丁香五月婷激情综合第九色| 免费久久人人爽人人爽AV| 九九在线精品国产| 国精产品一区二区三区有限公司| 久久天天躁狠狠躁夜夜婷| 免费看国产美女裸体视频| 久久综合九色综合97婷婷| 大陆精大陆国产国语精品| 性欧美老人牲交XXXXX视频| 高清自拍亚洲精品二区| 又大又长粗又爽又黄少妇视频| 国语自产精品视频在线看| 国产综合色在线精品| 爱情岛亚洲论坛成人网站| 色九月亚洲综合网| 伊人久久大香线蕉AV五月天| 国产精品无码无需播放器| 久久精品国产99国产精品严洲| 男人的天堂av社区在线| AV无码国产在线看免费网站| 日本一高清二区视频久二区| 久久一区二区中文字幕| 少妇扒开毛茸茸的B自慰| 国产SUV精品一区二区88L|