熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Hibernate初學之優缺點

2013-11-23 20:22:08  來源: Java開源技術 
    首先比較一下JDBC的優缺點
    JDBC的優點
    直接底層操作提供了很簡單便捷的訪問數據庫的方法跨平台性比較強靈活性比較強可以寫很復雜的SQL語句
    JDBC的缺點
    因為JAVA是面向對象的JDBC沒有做到使數據能夠面向對象的編程使程序員的思考仍停留在SQL語句上
    操作比較繁瑣很多代碼需要重復寫很多次
    如果遇到批量操作頻繁與數據庫進行交互容易造成效率的下降
    Jdbc是一個比較底層的東西  靈活寫SQL語句
    注冊驅動
    獲得連接
    產生一個Statement
    進行操作
    返回數據ResultSet
    new List對象
    把ResultSet數據放入List過程中
    A a = new A()
    asetXXX(rsgetString(xxx))
    代碼比較繁瑣
    純的JDBC是沒有緩存的
    模型不匹配(阻抗不匹配)
    Java面向對象語言對象模型其主要概念有繼承關聯多態等數據庫是關系模型其主要概念有主鍵外鍵等
    對象模型中對象與對象之間的關聯關系與關系模型中數據庫表之間的關系無法一一對應
    對象模型中對象的繼承關系在關系模型中無法直接表示
    對象模型中對象的等值性(equals)在關系模型中無法直接實現
    對象模型中有關聯的對象之間的導航訪問在關系模型中無法直接實現
    解決辦法
    使用JDBC手工轉換
    使用ORM(Object Relation Mapping對象關系映射)框架來解決
    Hibernate是一個開源ORM框架
    ORM全稱Object Relation Mapping即對象關系映射它是一種用來完成對象模型到關系模型的映射技術
    就是把應用程序中的對象數據持久化到關系數據庫的表的一種技術
    使用ORM( Object Relation Mapping )框架來解決主流的ORM框架有JBoss公司的HibernateOracle公司的TopLinkApache組織的OJBSun公司的JDO
    簡單的說ORM能利用面向對象的思想開放基於關系型數據庫的應用程序它的主要工作是將對象數據保存到關系數據庫的表中以及將關系數據庫表中數據讀入到對象中
    下載地址使用版本
    解壓獲取必需類庫文件
    將下載目錄/hibernatejar和/lib下的hibernate運行時必須的包加入classpath中



    安裝配置
    配置文件hibernatecfgxml和hibernatepropertiesXML和properties兩種這兩個文件的作用一樣提供一個即可推薦XML格式下載目錄/etc下是示例配置文件
    可以在配置文件指定
    數據庫的URL用戶名密碼JDBC驅動類方言等
    啟動時Hibernate會在CLASSPATH裡找這個配置文件
    映射文件(hbmxml對象模型和關系模型的映射)在/eg目錄下有完整的hibernate示例
    步驟
    新建java項目並加入相應的jar包及jdbc驅動
    創建持久化類
    准備數據庫表
    創建配置文件 hibernatecfgxml
    創建映射文件 xxxhbmxml
    創建測試文件
    nnectionurl  表示要鏈接的數據庫地址
    nnectiondriver_class    表示要鏈接的數據庫的驅動類
    nnectionusername     要連接的數據庫的用戶名
    nnectionpassword      要連接的數據庫的密碼
    Hibernatedialect   表示要使用的數據庫的類型
    orghibernatedialectMySQLDialect       mysql數據庫
    orghibernatedialectOracleDialect        oracle數據庫
    orghibernatedialectSQLServerDialect    SQLServer數據庫
    hibernatehbmddlauto
    validate:加載hibernate時驗證創建表結構
    update:加載hibernate時自動更新數據庫結構如果表存在不用創建如果不存在就創建
    create:每一次加載hibernate時都創建表結構
    createdrop:加載hibernate時創建退出時刪除
    <hibernatemapping package=comhbsidomain>
    <class name=User table=user>
    <id name=id>
    <generator class = native />
    </id>
    <property name=name />
    <property name=birthday type=datetime />
    </class>
    </hibernatemapping>
    <hibernateconfiguration>
    <sessionfactory name=foo>
    <property name=nnectiondriver_class>commysqljdbcDriver</property>
    <property name=connectionurl>jdbc:mysql:///test</property>
    <property name=connectionusername>root</property>
    <property name=connectionpassword>root</property>
    <property name=dialect>orghibernatedialectMySQLDialect</property>
    <property name=connectionpassword>root</property>
    <property name=show_sql>true</property>
    <property name=hbmddlauto>update</property>
    <mapping resource=com/hbsi/domain/Userhbmxml/>
    </sessionfactory>
    </hibernateconfiguration>
    這些都是配置文件還需要創建一個domain類


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28383.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.