我本人是從事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字段類型,所有這邊要自行處理,具體處理方法可以參照我的博客:
或者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結合使用的基本步驟和注意點,這些一般就夠用啦,如果還有其他的特殊需求,再說吧~~~。