思路
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 类罢了。
领取专属 10元无门槛券
私享最新 技术干货