自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate基礎(chǔ)學(xué)習(xí)經(jīng)驗(yàn)

開(kāi)發(fā) 后端
這里介紹Hibernate基礎(chǔ),如果在用Hibernate操作比較老的JDBC版本時(shí)遇到了問(wèn)題, 那么請(qǐng)禁用下面這兩個(gè)JDBC 2特有的特性: 批量更新和滾動(dòng)的結(jié)果集。

在向大家詳細(xì)介紹Hibernate基礎(chǔ)之前,首先讓大家了解下老版本的JDBC,然后全面介紹Hibernate基礎(chǔ)。

一.老版本的JDBC

如果在用Hibernate操作比較老的JDBC版本時(shí)遇到了問(wèn)題, 那么請(qǐng)禁用下面這兩個(gè)JDBC 2特有的特性:  批量更新和滾動(dòng)的結(jié)果集.
◆Hibernate.jdbc.batch_size=0
◆Hibernate.jdbc.use_scrollable_resultsets=false

1.oracle驅(qū)動(dòng)

注: oracle安裝文件的jdbc目錄下的lib目錄中,有oracle所需的各種驅(qū)動(dòng). 支持所有平臺(tái)的JDBC Thin驅(qū)動(dòng)如: classes12.jar , ojdbc14.jar等等…
◆classes12.jar  - JDK 1.2 和 JDK 1.3下使用
◆ojdbc14.jar  - JDK 1.4以上使用

2.thin與oci訪問(wèn)的區(qū)別

這個(gè)是Oracle提供的兩套Java訪問(wèn)Oracle數(shù)據(jù)庫(kù)的方法。thin就是純粹用Java完成訪問(wèn)數(shù)據(jù)庫(kù)的所有方法,優(yōu)點(diǎn)是不用安裝客戶端;oci是Oracle   Call   Interface的首字母縮寫(xiě),就是使用Java來(lái)調(diào)用本機(jī)的Oracle客戶端,然后再訪問(wèn)數(shù)據(jù)庫(kù),優(yōu)點(diǎn)是速度快,但是需要安裝和配置數(shù)據(jù)庫(kù)。(oci方式連接數(shù)據(jù)庫(kù),如果不安裝oracle客戶端,我們必須將oracle的bin目錄中的oci.dll, ocijdbc9.dll, ociw32.dll  copy到應(yīng)用所使用的JDK的bin目錄中.)

jdbc:oracle:thin:@ip地址:1521:實(shí)例名  換為  jdbc:oracle:oci@本地服務(wù)名 即可。如:從jdbc:oracle:thin:@10.1.1.2:1521:shdb改成:jdbc:oracle:oci8:@shdb.  Shdb是數(shù)據(jù)庫(kù),非數(shù)據(jù)庫(kù)用戶.

二.Hibernate基礎(chǔ)——JMX

JMX是一個(gè)用來(lái)管理Java應(yīng)用和組件的標(biāo)準(zhǔn)API---主要通過(guò)Mbean訪問(wèn)這些應(yīng)用程序和組件.Mbean是服務(wù)和資源包裝器.

三.Hibernate基礎(chǔ)——XML配置

Hibernate.cfg.xml,它應(yīng)放在應(yīng)用程序類路徑的根目錄中.如果已經(jīng)使用了hibernate.properties,那么hibernate.cfg.xml會(huì)覆蓋hibenate.properties中的任何設(shè)置.

四.Hibernate基礎(chǔ)——自定義命名策略

假設(shè)CaveatEmptor中的所有表名都應(yīng)該遵循模式CE_<table_name>.一種解決方案是手工在映射文件中的所有<class>和集合元素上指定table屬性.然而,這種方法既費(fèi)時(shí)又容易遺忘.替代做法是,實(shí)現(xiàn)Hibnernate的NamingStrategy接口:

  1. Public class CENamingStrategy extends ImprovedNamingStrategy{  
  2. Public String classToTableName(String className){  
  3. Return StringHelper.unqualify(className);  
  4. }  
  5. Public String propertyToColumnName(String propertyName){  
  6. Return propertyName;  
  7. }  
  8. Public String tableName(String tableName){  
  9. Return “CE_”+tableName  
  10. }  
  11. Public String columnName(String columnName){  
  12. Return columnName;  
  13. }  
  14. Public Strring propertyToTableName(String className,String propertyName){  
  15. Return “CE_”+classToTableNmae(className)  
  16. +”_”+propertyToColumnName(propertyName);  
  17. }  

你擴(kuò)展了ImproveNameingStrategy,它對(duì)你不想從頭開(kāi)始實(shí)現(xiàn)的NamingStrategy的所有方法提供默認(rèn)實(shí)現(xiàn).僅當(dāng)<class>映射沒(méi)有指定顯式的table名稱時(shí)才調(diào)用classToTableName方法.如果屬性沒(méi)有顯式的column名稱,就調(diào)用propertyToColumnName()方法.當(dāng)聲明了顯式的名稱時(shí),則調(diào)用tableName()和columnName()方法.NamingStrategy接口的***特性是動(dòng)態(tài)行為的潛能.為了啟用一個(gè)特定的命名策略.可以在啟動(dòng)時(shí)把一個(gè)實(shí)例傳遞到Hibernate的Configuration:

  1. Configuration cfg = new Configuration();    
  2. Cfg.setNamingStrategy(new CENameingStrategy());  
  3. SessionFactory sessionFactory = cfg.configure().buildSessionFactory(); 

【編輯推薦】

  1. 講解NHibernate Session
  2. 簡(jiǎn)單描述Hibernate Sample
  3. Hibernate Annotations維護(hù)驗(yàn)證邏輯
  4. Hibernate ClassValidator實(shí)例
  5. 描述Hibernate持久性類
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-09-23 10:49:08

Hibernate D

2009-09-22 10:46:00

Hibernate項(xiàng)目

2009-09-25 11:27:19

Hibernate J

2009-09-22 11:16:27

Hibernate經(jīng)驗(yàn)

2009-09-22 17:25:41

優(yōu)化Hibernate

2009-09-29 16:32:11

OJB Hiberna

2009-09-21 17:33:50

Hibernate基礎(chǔ)

2009-06-24 08:05:56

Hibernate基礎(chǔ)Configurati

2009-09-27 14:53:38

Hibernate S

2009-09-25 17:26:55

使用Hibernate

2009-09-22 14:23:37

Hibernate S

2009-09-28 10:14:08

Hibernate基礎(chǔ)

2009-09-22 09:27:29

Hibernate P

2009-09-21 16:30:20

Hibernate S

2009-09-21 13:19:06

Hibernate s

2009-09-28 10:24:58

Hibernate基礎(chǔ)

2009-09-25 16:55:08

Hibernate初始

2009-09-23 11:07:11

Hibernate基礎(chǔ)

2009-09-21 14:24:08

Hibernate3.

2009-09-29 16:25:29

Hibernate c
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)