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

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

1、驅動包下載

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

下載地址:sql

https://jdbc.postgresql.org/download.html數據庫

這裏寫圖片描述

根據本身的數據庫版本狀況進行下載。json

2、配置文件

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包。markdown

3、使用中的注意點

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

PostGreSQL做爲對象關係數據庫,和其餘數據庫相比json字段無疑是一大亮點,但和Hibernate結合使用時,Hibernate自己並無Json字段類型,全部這邊要自行處理,具體處理方法能夠參照個人博客:架構

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

或者stackoverflow上的解決方案:框架

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

二、主鍵生成方式

如今數據庫中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結合使用的基本步驟和注意點,這些通常就夠用啦,若是還有其餘的特殊需求,再說吧~~~。

相關文章
相關標籤/搜索