PostGreSQL 結合 Hibernate 在項目中的使用小結

我本人是從事J2EE開發的,一提到J2EE開發,估計大家第一想到的就是SSH三層架構,當然現在已經不一定是這樣的了,也有SSI,也有SpringMVC框架等等,其中ORM這個技術在開發中是肯定會用到的,畢竟是一種里程碑的技術,這裏只介紹下Hibernate與PostGreSQL的結合使用。

一、驅動包下載

這裏使用過Hibernate的人應該都知道,和數據庫結合使用必須下載指定數據庫的數據庫驅動jar包,當然PostGreSQL也不例外

下載地址:

https://jdbc.postgresql.org/download.html

這裏寫圖片描述

根據自己的數據庫版本情況進行下載。

二、配置文件

db.driverClassName=org.postgresql.Driver
db.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
db.url=jdbc:postgresql://localhost/qm
db.username=qianmeng
db.password=123456
db.hibernate.query.factory_class=org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory

我這裏是屬性文件,當然不同項目配置方式可能不一樣,這裏主要配置driverClassName(數據庫驅動名稱)、hibernate.dialect(Hibernate方言),前提是你的項目中引入了第一步下載的jar包。

三、使用中的注意點

1、數據庫中存在json數據類型字段

PostGreSQL作爲對象關係數據庫,和其他數據庫相比json字段無疑是一大亮點,但和Hibernate結合使用時,Hibernate本身並沒有Json字段類型,所有這邊要自行處理,具體處理方法可以參照我的博客:

http://blog.csdn.net/qian_meng/article/details/48394379

或者stackoverflow上的解決方案:

http://stackoverflow.com/questions/15974474/mapping-postgresql-json-column-to-hibernate-value-type

2、主鍵生成方式

現在數據庫中id自增長這種需求在正常不過啦,但在PostGreSQL中怎麼處理呢.
使用 serial 關鍵字,這樣生成表的同時也會生成一個針對id的一個sequence,當然你也可以不用serial關鍵字,手動指定id的sequence,不過既然有好方法爲什麼不用呢,對吧。

create table test_a 
(
  id serial,
  name character varying(128),
  constraint pk_test_a_id primary key( id)
); 

另外,當使用Hibernate時最常用的就是希望執行 session.save(entity); 函數的時候,數據庫中id自動+1,那麼就需要在Hibernate與model的配置文件 .hbm文件中指定Id的生成方式爲 identify,前提是數據庫中id設置了sequence。

<id name="id" type="java.lang.Integer">
       <column name="id" />
       <generator class="identity" />
</id>

以上就是PostGreSQL與Hibernate結合使用的基本步驟和注意點,這些一般就夠用啦,如果還有其他的特殊需求,再說吧~~~。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章