Lerx CMS升级到5.2后,支持当前Oracle MySQL最新的社区版5.7。因为CentOS 7.X 默认的MySQL数据库也是5.7。但该版本连接方式与以前区别较大。
主要注意以下几个方面:
一、驱动文件
5.7使用mysql-connector-java-8.0.11.jar
而之前版本使用
mysql-connector-java-5.1.47.jar
mysql-connector-java-5.1.47-bin.jar
注意在WEB-INF/lib中根据相应的要求进行放置。不要重复放置多种版本,以防冲突。
二、文件jdbc.properties
#jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost:3306/portal?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
jdbc.url=jdbc:mysql://localhost:3306/portal?useSSL=false&characterEncoding=utf-8&serverTimezone=UTC
jdbc.username=portal
jdbc.password=ilovelerx
5.7版本的数据库驱动为com.mysql.cj.jdbc.Driver
上面文件中用#注释掉的是5.7以前版本的连接方式。你可以按照实际环境修改。
三、文件hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">false</property>
<!-- <property name="dialect">org.hibernate.dialect.MySQLDialect</property> -->
<!-- MySQL 5.7 (CentOS 7下) -->
<property name="dialect">org.hibernate.dialect.MySQL57Dialect</property>
<!-- <property name="hibernate.c3p0.max_size">500</property>
<property name="hibernate.c3p0.min_size">20</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.c3p0.timeout">2000</property>
<property name="hibernate.c3p0.idle_test_period">2000</property>
<property name="hibernate.c3p0.acquire_increment">10</property>
<property name="hibernate.connection.serverTimezone">Asia/Shanghai</property>
<property name="hibernate.connection.useUnicode">true</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.autoReconnect">true</property>
<property name="hibernate.connection.autocommit">true</property>
<property name="hibernate.connection.zeroDateTimeBehavior">convertToNull</property>
<property name="hibernate.connection.useSSL">false</property>
<property name="hibernate.connection.pool_size">1</property>
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> -->
...
5.7的数据库方言必须将org.hibernate.dialect.MySQLDialect改为org.hibernate.dialect.MySQL57Dialect
如果使用c3p0连接池,注意将下面注释掉的部分恢复。
四、文件transaction.xml
如果使用c3p0连接池,请将以下部分进行互换。
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="3" />
<property name="minIdle" value="3" />
<property name="maxIdle" value="5" />
<property name="maxTotal" value="15" />
<property name="timeBetweenEvictionRunsMillis" value="1000" />
<property name="validationQuery" value="select 1" />
</bean>
<!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClassName}"></property>
<property name="maxPoolSize" value="20" />
<property name="minPoolSize" value="5" />
初始化建立的连接数
<property name="initialPoolSize" value="10" />
最大空闲时间,120秒内未被使用的连接将被丢弃
<property name="maxIdleTime" value="120" />
当连接池耗尽,且未达到最大连接数时,一次获取的连接数
<property name="acquireIncrement" value="2" />
空闲检查时间间隔, 每隔120秒检查连接池里的空闲连接 ,单位是秒
<property name="idleConnectionTestPeriod" value="60" />
</bean>
-->