OrientDB-由连接池控制的JDBC驱动程序
我们正在将一些使用关系数据库的应用程序更改为OrientDB(2.1.9)。 这个事务将分小步进行,我们将首先从JDBC驱动程序方法开始,也许稍后我们将切换到本机实现 我们有一个基于Spring集成的应用程序,我们使用JDBC驱动程序将Oracle数据库更改为OrientDB 数据库连接由Tomcat 8连接池管理,事务行为由Spring的事务管理器处理:OrientDB-由连接池控制的JDBC驱动程序,orientdb,Orientdb,我们正在将一些使用关系数据库的应用程序更改为OrientDB(2.1.9)。 这个事务将分小步进行,我们将首先从JDBC驱动程序方法开始,也许稍后我们将切换到本机实现 我们有一个基于Spring集成的应用程序,我们使用JDBC驱动程序将Oracle数据库更改为OrientDB 数据库连接由Tomcat 8连接池管理,事务行为由Spring的事务管理器处理: <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="com.orientechnologies.orient.jdbc.OrientJdbcDriver" />
...
</bean>
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
JDBC驱动程序类包装器现在返回一个包装的连接:
公共类OrientJDBCDriverRapper扩展OrientJdbcDriver{
public Connection connect(final String url, final Properties info) throws SQLException {
if (!acceptsURL(url)) {
throw new SQLException(DO_NOT_ACCEPT_URL_ERROR + url);
}
return new OrientJdbcConnectionWrapper(url, info);
}
}
最后,连接池的配置现在使用包装的驱动程序:
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="x.y.z.driver.orientdb.OrientJdbcDriverWrapper" />
</bean>
正如所料,这是完美的,但我不完全确定这是正确的方法,因为我没有看到任何人与这个问题
另一方面,OrientDB文档确实建议在多线程环境中使用activateOnCurrentThread()
<bean id="dataSource" class="com.orientechnologies.orient.jdbc.OrientDataSource">
<constructor-arg name="url" value="jdbc:orient:plocal:xx\\databases\\test" />
<constructor-arg name="username" value="xx"/>
<constructor-arg name="password" value="xx"/>
<constructor-arg name="info" ref="databaseProperties" />
</bean>
<util:map id="databaseProperties" value-type="java.lang.String">
<entry key="db.usePool" value="true" />
<entry key="db.pool.min" value="1" />
<entry key="db.pool.max" value="10" />
注意:我通过OrientJDBC驱动程序使用OrientDB OrientDB有自己的数据库池,可以轻松配置:
<bean id="dataSource" class="com.orientechnologies.orient.jdbc.OrientDataSource">
<constructor-arg name="url" value="jdbc:orient:plocal:xx\\databases\\test" />
<constructor-arg name="username" value="xx"/>
<constructor-arg name="password" value="xx"/>
<constructor-arg name="info" ref="databaseProperties" />
</bean>
<util:map id="databaseProperties" value-type="java.lang.String">
<entry key="db.usePool" value="true" />
<entry key="db.pool.min" value="1" />
<entry key="db.pool.max" value="10" />
注意:我通过OrientJDBC驱动程序使用OrientDB