Liferay中怎么更换数据库?

常碰到有人问Liferay怎么更换数据库,怎么修改数据库连接。在我们第一次启动Liferay的时候,会有一个配置向导,在此配置向导我们可以选择数据库,并配置数据库连接信息。如果我现在在向导里面选择了PostgreSQL数据库,但是我后面想要变更为Oracle怎么办呢?

在执行完配置向导后会在Liferay的目录下面生成一个文件portal-setup-wizard.properties。我们打开此文件,可以在里面看到如下的数据库连接信息。

jdbc.default.driverClassName=org.postgresql.Driver
jdbc.default.url=jdbc:postgresql://localhost:5432/liferay62
jdbc.default.username=postgres
jdbc.default.password=postgres

这几行我们一看就知道是数据库的连接信息了,配置的为JDBC连接的驱动名称、JDBC连接串、数据库的用户名、数据库的密码等几个信息,我们需要要更换数据库,在这里将数据库修改为我们想要的即可。

为什么看到有些教程或文章说是在ROOT/WEB-INF/classes/portal-ext.properties文件里面修改呢?请先参看《Liferay中Portal.properties常用配置参数》这篇博客的前面一小部分,在这两个文件里面修改都是可以的,看自己喜欢了。

Liferay用什么做的数据库连接?

Liferay底层是使用hibernate,Liferay中的数据库操作均是通过Hibernate来进行的。默认是使用C3PO这个连接池。我们也可以通过在portla-ext.properties、portal-setup-wizard.properties或其他的*.properties文件进行连接池的调整。

portal-setup-wizard.properties

jdbc.default.liferay.pool.provider=c3po
#jdbc.default.liferay.pool.provider=dbcp
#jdbc.default.liferay.pool.provider=tomcat

默认的配置如上,可以根据情况调整为我们需要的连接池。同时还有许多的关于连接池的配置参数如下(可以在源码的Portal.properties文件中找到)

jdbc.default.acquireIncrement=5
jdbc.default.acquireRetryAttempts=3
jdbc.default.acquireRetryDelay=1000
jdbc.default.connectionCustomizerClassName=com.liferay.portal.dao.jdbc.pool.c3p0.PortalConnectionCustomizer
jdbc.default.idleConnectionTestPeriod=60
jdbc.default.maxIdleTime=3600
jdbc.default.maxPoolSize=100
jdbc.default.minPoolSize=10
jdbc.default.numHelperThreads=10
#jdbc.default.transactionIsolation=1
#jdbc.default.defaultTransactionIsolation=READ_UNCOMMITTED
jdbc.default.maxActive=100
jdbc.default.minIdle=10
jdbc.default.removeAbandonedTimeout=3600
jdbc.default.jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState
jdbc.default.jmxEnabled=true
jdbc.default.fairQueue=true
jdbc.default.timeBetweenEvictionRunsMillis=30000
jdbc.default.useEquals=false

我们可以根据自己的实际情况进行以上参数的调整与优化。Liferay底层是使用的Hibernate,hibernate的相关配置也是可以使用的,比如我们想让在控制台中打印出执行的SQL语句。只需要配置如下参数:

hibernate.show_sql=true

默认时为false。更多的hibernate默认配置信息,可以在portal.properties里面搜索hibernate.找到。

让Liferay使用中间件的数据源

有时候我们并不想使用JDBC连接池来管理我们的数据库连接,想使用中间件的数据源,比如Tomcat的数据源,Weblogic的数据源。此时我们只需要在portla-ext.properties或portal-setup-wizard.properties中添加如下配置

jdbc.default.jndi.name=jdbc/LiferayPool

这样我们就是让Liferay去中间件的数据源中去寻找数据库连接。当然数据源的JNDI名称必须配置成jdbc/LiferayPool,此时前面的那些JDBC连接的配置就是不需要的了。此时可以删除。

Liferay支持哪些数据库?

有人可能会想,Liferay底层是使用的Hibernate,那是不是Hibernate支持的数据库Liferay都支持呢?理论上应该是这样的,但实际上并非如此,Liferay支持的数据库如下:

DB2、Derby、Hypersonic(HSQL)、Ingres、Mysql、Oracle、P6Spy、PostgreSQL、SQL Server、Sybase等

其他的数据库默认不提供直接支持,只要是Hibernate支持的数据库,如果要让Liferay支持,需要对源码进行一些修改,修改起来并不算复杂。具体的可以参考一下Liferay源码目录下的Portal-impl/src/com/liferay/portal/dao/db下面的面的相关类。

怎么在代码中获取JDBC连接串Connection

有时候可能出于某此原因,我们就是要获取JDBC的连接Connection,怎么办呢?使用普通的JDBC根据配置的参数读取肯定也是可行的,但Liferay已经给我们提供了这样的一个API:

DataAccess.getConnection()。

数据库连接的一些其他信息,如当前的数据库类似等,可以通过DBFactoryUtil.getDB()再获取相关方法来得到。

http://www.huqiwen.com/2014/01/15/liferay-6-study-26-about-liferay-database-connection/

Liferay 6开发学习(二十六):数据库连接相关问题的更多相关文章

  1. Java开发学习(二十六)----SpringMVC返回响应结果

    SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查 ...

  2. Java开发学习(三十六)----SpringBoot三种配置文件解析

    一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时 ...

  3. Java开发学习(二十二)----Spring事务属性、事务传播行为

    一.事务配置 上面这些属性都可以在@Transactional注解的参数上进行设置. readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true. timeout ...

  4. Java开发学习(二十四)----SpringMVC设置请求映射路径

    一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...

  5. Java开发学习(二十五)----使用PostMan完成不同类型参数传递

    一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...

  6. Java开发学习(二十八)----拦截器(Interceptor)详细解析

    一.拦截器概念 讲解拦截器的概念之前,我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源 (3)如 ...

  7. java web学习总结(十六) -------------------数据库连接池

    一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...

  8. 网站开发进阶(二十六)js刷新页面方法大全

    js刷新页面方法大全 在项目开发过程中,需要实现刷新页面.经过学习,发现下面这条语句就可以轻松实现. location.reload(); // 刷新页面 有关刷新页面的其它方法,具体学习内容如下,有 ...

  9. JavaWeb学习 (二十六)————监听器(Listener)学习(二)

    一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...

  10. ElasticSearch7.3学习(二十六)----搜索(Search)参数总结、结果跳跃(bouncing results)问题解析

    1.preference 首先引入一个bouncing results问题,两个document排序,field值相同:不同的shard上,可能排序不同:每次请求轮询打到不同的replica shar ...

随机推荐

  1. 自然语言处理2.1——NLTK文本语料库

    1.获取文本语料库 NLTK库中包含了大量的语料库,下面一一介绍几个: (1)古腾堡语料库:NLTK包含古腾堡项目电子文本档案的一小部分文本.该项目目前大约有36000本免费的电子图书. >&g ...

  2. 网页上下载文件提示框(vb.net)

    Public Sub downLoadFile(ByVal fPath As String) Dim fileInfo As System.IO.FileInfo = New System.IO.Fi ...

  3. centos7通过yum安装mysql,并授权远程连接

    安装: CentOS 7的yum源中没有正常安装MySQL的mysql-sever文件,需要去官网上下载(通过安装mysql的yum容器,再通过yum安装mysql) 注:安装前,需要卸载所有的mar ...

  4. python读取excel的行数

    基于python3.x下 需要包 from openpyxl import load_workbook 代码如下: from openpyxl import load_workbook wb = lo ...

  5. Android内核剖析读书笔记

    第16章 程序包管理 PackageManagerService類 PmS 目錄 16.1 包管理概述 16.2 packages.xml文件格式 16.3 包管理服務的啟動過程 16.4 應用程序的 ...

  6. Windows环境变量

    说明:系统文件盘为C盘,操作系统为Windows XP.登录用户名为weste.计算机名为icech 说明:不同的操作系统如Windows XP和Windows 2000相对应的一些路径是不同的,这里 ...

  7. RDO部署openstack(2)

    配置ML2和VXLAN   1. 安装和配置Neutron ML2 框架 (1) 安装在控制节点上(运行Neutron-server的节点) service neutron-server stop y ...

  8. 【虚拟化】支持IDE/SATA/SCSI

    驱动说明 IDE    :IDE和SATA是最常用的两种磁盘格式,基本每个系统上都会有: SATA:同IDE: SCSI :系统上一般缺少此驱动,需要手动安装: Linux下的名称 IDE硬盘:hd[ ...

  9. IntelliJ IDEA以不同格式导出数据库的数据

    在数据表内容上点击右键,弹出窗口中先选择Data Extractor SQL Inserts,二级菜单会列出导出数据的类型,这里选择SQL Inserts 然后选择Dump Data菜单中的To Fi ...

  10. .net下连接数据库

    可以新建一个按钮,在click事件下,写入一下代码 using( SqlConnection conn=new SqlConnection(Data source=.; Catalog Initial ...