首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让 Liferay 7 支持 oracle 等商业数据库

思路

Liferay 在 7.0 的社区版本中取消了对于商业数据库的支持,实际上我们可以自己来扩充这个支持,liferay 的 DAO 部分使用的是 hibernate,准确的版本号为 3.6.10.Final,数据库的生成等也是基于 hibernate 作的,而不是自己独立的,所以理论上来讲只要是 hibernate 支持的数据库,liferay 7 都可以实际支持。下载

如果不想看思路的朋友,可以直接下载下面的包了,支持oracle、db2、sql server、Sybase等四种商业数据库。请下载包。使用说明

下载后是一个 zip 包,解压后将里面的 jar 包放到下面。

复制对应的 JDBC 驱动到 tomcat 的下面,就是如果使用 oracle,则需要安装 oracle 的 JDBC 驱动,使用S QL Server,安装 sql server 的 JDBC 驱动,就和普通的 java web 程序一样,liferay 本身是没有带对应的驱动 jar 包的。

在数据库建立对应的库,如果是 Oracle 就是建立一个表空间,建立空库,liferay会自动的建表,但不会建库。

在 portal 目录下面的 portal-setup-wizard.properties 里面修改对应的 JDBC 数据库连接信息。

重启 Liferay,则会对3中建立的库中生成对应的表信息。

原理

怎么做到支持的?如果熟悉 Liferay 之前的版本,知道之前版本是支持商业数据库的,那这个支持的配置文件等是在什么地方呢?在 Liferay 的源码中下面会看到有很多的数据库的支持,如果仔细观察会发现所支持的数据库的定义主要有两个地方:位置一:,这个类里面定义了一个枚举类型,用来说明支持的数据库的类型,这里的定义是方便其他地方操作的。位置二:下面,这下面每个支持的数据库会有两个类,以 MySQL 为例子,有 MySQLDB 和 MySQLDBFactory.java。所以我们要做的事情就是来处理这两个地方,位置一里面已经涵盖的有商业数据库了,不用管。位置的内容,我们可以直接将 6.2 的迁移过了。6.2的怎么写的这里也一样没有变化。或者是从 github 上找到里面对应的源码拿过来使用。https://github.com/liferay/liferay-portal原理就是上面的原理,如果观察上面提供的支持包,里面就是提供了几种商业数据库的 db 和 dbfactory 类罢了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171220G0NLG600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券