# 功能描述
数据源指的是一个数据库连接池。平台连接池使用的是阿里的DRUID连接池。一般情况下我们在xml中做如下配置。
<bean id="dataSource_Default"
class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
destroy-method="close">
<!-- 配置监控统计拦截的filters -->
<!--
<property name="filters" value="stat,config" />
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${db.publicKey}" />
<property name="driverClassName" value="${db.driver}" />
-->
<property name="filters" value="stat" />
<!-- 基本属性 url、user、password -->
<property name="name" value="系统数据源" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${db.minimumConnectionCount}" />
<property name="minIdle" value="${db.minimumConnectionCount}" />
<property name="maxActive"
value="${db.maximumConnectionCount}" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery"
value="SELECT 1 from act_ge_property" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
</bean>
但是有些情况下,我们希望去访问第三方数据库。
这个时候我们有两种选择:
一种是配置 连接信息,通过代码 构建连接访问数据库。这种方式效率不高,而且只能通过工具类处理。 使用动态数据源。
spring 提供了动态数据源的方式访问数据,这种方式可以使用现有的代码,通过切换数据库。
# 操作步骤
# 配置数据源
入口:开发配置——开发工具——数据源管理 点击【新增】
别名:保证唯一。 启动时初始化:这个表示在系统启动时,数据源会根据配置初始化好。 是否使用:是否生效 数据库类型:需要连接的库类型 URL:根据实际的连接进行调整 填写用户名,密码,和其他的参数。 点击测试,测试成功后,可以进行保存。
测试是否生效
点击监控按钮 效果 这里我们可以看到实际上数据源已经被管理起来了。
# 数据源切换
# 描述
在平台中提供了动态数据源功能,用户可以在平台中动态的配置数据源。
数据源的作用:
通过数据源访问其他数据库。 通过切换数据源可以水平切分租户的数据。 可以通过切换数据源访问其他的数据库。
# 例子
开发配置——单据开发——单据列表设计 点击【新增】
切换数据源。