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

2017年12月11日 Liferay, Liferay7 暂无评论 阅读 16,833 views 次

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

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

Liferay 7商业数据库支持包:com.liferay.portal.dao.db

使用说明:

1、下载后是一个zip包,解压后将里面的jar包放到tomcat/ROOT/WEB-INF/lib下面。

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

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

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

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

 

怎么做到支持的?

如果熟悉Liferay之前的版本,知道之前版本是支持商业数据库的,那这个支持的配置文件等是在什么地方呢?

在Liferay的源码中portal-impl/src/com/liferay/portal/dao/db下面会看到有很多的数据库的支持,如果仔细观察会发现所支持的数据库的定义主要有两个地方:

位置一:com.liferay.portal.kernel.dao.db.DBType,这个类里面定义了一个枚举类型,用来说明支持的数据库的类型,这里的定义是方便其他地方操作的。

位置二:com.liferay.portal.dao.db下面,这下面每个支持的数据库会有两个类,以MySQL为例子,有MySQLDB和MySQLDBFactory.java。

所以我们要做的事情就是来处理这两个地方,位置一里面已经涵盖的有商业数据库了,不用管。

位置的内容,我们可以直接将6.2的迁移过了。6.2的怎么写的这里也一样没有变化。或者是从github上找到里面对应的源码拿过来使用。https://github.com/liferay/liferay-portal

原理就是上面的原理,如果观察上面提供的支持包,里面就是提供了几种商业数据库的db和dbfactory类罢了。

 

用户头像

给我留言

您必须 登录 才能发表留言!

Copyright © IT人生录 保留所有权利.   主题设计 知更鸟 滇ICP备16001547号

用户登录

分享到: