參與人員:
發布記錄:
版本 |
日期 |
作者 |
說明 |
1.0 |
2005-10-25 |
柯自聰 |
創建,第一版 |
|
|
|
|
鏈接:
OpenDoc版權說明:
本文檔版權歸原作者所有。
在免費、且無任何附加條件的前提下,可在網絡媒體中自由傳播。
如需部分或者全文引用,請事先征求作者意見。
如果本文對您有些許幫助,表達謝意的最好方式,是將您發現的問題和文檔改進意見及時反饋給作者。當然,倘若有時間和能力,能為技術群體無償貢獻自己的所學為最好的回饋。
Liferay Portal 系列文章—Portal數據持久.......................................................................... 1
一、HSQL數據庫....................................................................................................... 3
1.1 HSQL簡介.................................................................................................... 3
1.2 HSQL的特性................................................................................................ 4
1.3 使用HSQL的軟件......................................................................................... 5
1.4 學些HSQL的資源......................................................................................... 5
二、定制Portal數據源(針對Ent版本)................................................................ 5
Liferay Portal支持個性化桌面定制,用戶可以隨時定制和修改自己的桌面,添加、刪除和修改桌面上的Portlet。這些定制信息都隨時被持久化到數據庫中。如果留心一下,可以在{PORTAL_HOME}\conf\Catalina\localhost\ liferay.xml 找到Liferay Portal使用的連接池。

在{PORTAL_HOME} \common\lib\ext 目錄下,能夠找到一個hsql.jar,這個就是數據庫引擎包。
默認的,Liferay Portal集成HSQL數據庫作為持久化數據庫,所有的定制信息都能夠隨時添加到HSQL數據庫中,以相應用戶的定制。用戶可以根據需要修改連接池配置,選擇自己方便合適的數據庫。
HSQL是一個完全用Java編寫的輕量級數據庫。在本文寫作的時候,HSQL 1.8.0已經正式發布。相比1.7.2版本,一年多的研發投入,使得HSQL的引擎更強大,SQL性能更好,支持最多8GB的數據量。
HSQL數據庫是一個完全使用Java編寫得領先的關系數據庫引擎。它集成了JDBC驅動,支持ANSI-92-SQL以及SQL99和2003,提供了一個精練的(小于100K的Applet形式)、快速的數據庫引擎,支持內存和磁盤表結構,支持集成和服務器模式。另外的,它包含了小型的web 服務器,基于內存的查詢和管理工具(作為Applet運行),以及一系列的范例。
現在,HSQL已經被很多開源項目和商業產品用作數據庫和持久化引擎。它的精練、能夠完全在內存中運行的能力、彈性和速度為大家所稱道。
- 100% Java 編寫
- 完全的關系數據庫,支持Java對象
- 支持JDK1.1.x、1.2.x、1.3.x、1.4.x以及更高版本
- 快速啟動,支持select、insert、delete、update操作
- 支持標準SQL語法
- 支持內連接和外連接,交叉查詢
- 支持分級查詢,包括IN、EXISTS、ANY、ALL等關聯查詢
- 支持視圖、臨時表和序列
- 支持單列或者多列的主鍵,唯一和確認約束
- 支持單列或者多列的索引
- 支持ORDER BY,GROUP BY ,HAVING語法
- 支持COUNT、SUM、MIN、MAX、AVG和其他統計功能(表達式或者函數)
- 完全支持諸如CASE…WHEN…ELSE…NULL…IF等的SQL表達式
- 支持SQL標準的自動增長列和序列
- 支持COMMIT、ROLLBACK和SAVEPOINT事務
- 支持刪除、更新、清空和默認操作的數據一致性(外鍵)
- 每個庫擁有多個schemata
- Java保存過程和函數
- 觸發器
- 支持密碼、GRANT和REVOKE的用戶權限和角色,確保數據庫安全
- 擴展ALTER TABLE命令,允許更改列類型
- 內存表,以便快速操作
- 磁盤表,以便支持大量數據
- 擴展的諸如CSV文件的文本表
- 內存(比如Applet)、集成(比如加入Java應用)和C/S操作模式
- 三種客戶端連接模式:HSQL、HTTP、HSQL-BER,可以采用SSL協議作為HTTP web服務器運行。
- 可以在Applet、只讀media、集成jar、webstart和集成應用中使用
- 每個虛擬機多個實例
- 磁盤表可以達到8GB,文本表可以達到2GB
- 每個字符和二進制數據的長度取決于內存
- 完全支持PreparedStatement對象以加速查詢過程
- 支持95%以上的JDBC接口,包括批量抓取和可回滾的ResuletSet
- 支持所有JDBC數據類型,包括Object、Boolean、Blob、Clob
- 完全支持DatabaseMetaData和ResultSetMetaData
- 帶或者不帶數據的SQL腳本垃圾收集
- 強大的基于Java命令和GUI數據庫管理工具
1.3 使用HSQL的軟件
開源軟件:
Open Office 2.0
JBoss
JFox
Jonas
Hibernate
ObJectRelationalBridge – OJB
Mr. Persister ORM
CJDBC
商業軟件:
Mathematica
Jira
TrackStudio
1.4 學些HSQL的資源
官方網站:http://www.hsqldb.org/
Sourceforge的官方頁面:http://sourceforge.net/projects/hsqldb
下載地址:http://sourceforge.net/project/showfiles.php?group_id=23316
一個簡單的操作例子:http://blog.csdn.net/whoopee/archive/2005/09/06/472441.aspx
Liferay Portal Ent沒有特別依賴于某種數據庫。為實現這個目標,所有的業務邏輯都被集中在中間層,而且跟數據庫低耦合。這意味著Portal不依賴于特定數據庫的存儲過程或者生成關鍵字。
假設已經將Portal Ent版本的源碼下載到{PORTAL_SRC_HOME}目錄廈,要運行創建庫和插入數據的腳本,命令行下轉到{PORTAL_SRC_HOME}\portal-ejb 目錄,運行Ant命令:ant build-db。這個命令會為DB2、Firebird、Hypersonic、Interbase、JdataStore、MySQL、Oracle、PostgreSQL和SQL Server運行腳本。
所運行的SQL腳本在{PORTAL_SRC_HOME}\sql\portal目錄下,命名為portal-db2.sql、portal-firebird.sql、portal-hypersonic.sql、portal-interbase.sql、portal-jdatastore.sql、portal-mysql.sql、portal-oracle.sql、portal-postgrresql.sql和portal-sql-server.sql。可以從這里下載包含上述sql文件的zip壓縮包。
http://prdownloads.sourceforge.net/lportal/liferay-portal-ent-3.6.0-sql.zip
庫表創建完成之后,就可以修改{PORTAL_HOME}\conf\Catalina\localhost\ liferay.xml,把連接池改為相應的數據庫。具體的例子可以參照documenttation。
http://localhost/web/guest/documentation/development/databases
posted on 2005-10-25 16:33
eamoi 閱讀(7998)
評論(5) 編輯 收藏 所屬分類:
Java