`

bboss内置数据源apache dbcp与druid数据源切换方法

阅读更多
bboss内置数据源与druid数据源切换方法
bboss内置数据源内置数据源为apache dbcp,也可以配置到阿里巴巴开源的druid数据源,本文介绍他们之间如何切换:

内置数据源dbcp配置
bboss集成了apache dbcp2连接池,并做了jdk1.6兼容性改造,dbcp2官方要求jdk 7+。
dbcp在bboss中老的配置方式(不建议)
首先在poolman.xml中配置了内置dbcp数据源:
 <datasource>

    <dbname>bspf</dbname>
	<loadmetadata>false</loadmetadata>
    <jndiName>ds0_datasource_jndiname</jndiName>
     <autoprimarykey>false</autoprimarykey>
     <cachequerymetadata>false</cachequerymetadata>
    <driver>oracle.jdbc.driver.OracleDriver</driver>

     <url>jdbc:oracle:thin:@//10.0.15.51:1521/orcl</url> 
    <username>testpdp1</username>
    <password>testpdp1</password>

    <txIsolationLevel>READ_COMMITTED</txIsolationLevel>

    <nativeResults>true</nativeResults>

    <poolPreparedStatements>false</poolPreparedStatements>

    <initialConnections>2</initialConnections>
    
    <minimumSize>50</minimumSize>
    <maximumSize>50</maximumSize>
	<!--控制connection达到maximumSize是否允许再创建新的connection
		true:允许,缺省值
		false:不允许-->
    <maximumSoft>false</maximumSoft>
    
    <!-- 
    是否检测超时链接(事务超时链接)
    true-检测,如果检测到有事务超时的链接,系统将强制回收(释放)该链接
    false-不检测,默认值
     -->
    <removeAbandoned>false</removeAbandoned>
	<!--
		链接使用超时时间(事务超时时间)
		单位:秒
	-->
    <userTimeout>50</userTimeout>
    <!-- 
    	系统强制回收链接时,是否输出后台日志
    	true-输出,默认值
    	false-不输出
     -->
    <logAbandoned>false</logAbandoned>
    
    <!-- 
    	数据库会话是否是readonly,缺省为false
     -->
    <readOnly>true</readOnly>
	
	<!--
		对应属性:timeBetweenEvictionRunsMillis
		the amount of time (in milliseconds) to sleep between examining idle objects for eviction 
	-->
	<skimmerFrequency>120000</skimmerFrequency>
	<!--对应于minEvictableIdleTimeMillis 属性:
	minEvictableIdleTimeMillis the minimum number of milliseconds 
	an object can sit idle in the pool before it is eligable for evcition
	单位:秒
	
	空闲链接回收时间,空闲时间超过指定的值时,将被回收
	-->
	<connectionTimeout>240000</connectionTimeout>
	<!--
	numTestsPerEvictionRun 
	the number of idle objects to 
	examine per run within the idle object eviction thread (if any)
	
	每次回收的链接个数 
	-->
    <shrinkBy>5</shrinkBy>
    <testWhileidle>true</testWhileidle>
    <keygenerate>composite</keygenerate>
    <debugging>true</debugging>-->
    <!-- 请求链接时等待时间,单位:秒
    客服端程序请求链接等待时间超过指定值时,后台包等待超时异常
     -->
    <maxWait>60</maxWait>
    <validationQuery>select 1 from dual</validationQuery>
	<RETURN_GENERATED_KEYS>false</RETURN_GENERATED_KEYS>
  </datasource>

bboss配置dbcp建议方法:
在classes类路径根目录下准备好dbcp.xml配置文件(基于bboss ioc语法)
<property name="datasource" class="com.frameworkset.commons.dbcp2.BasicDataSource">
 	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>  
	<property name="url" value="jdbc:oracle:thin:@//10.0.15.51:1521/orcl"/>  
	<property name="username" value="sanyfms"/>  
	<property name="password" value="sanyfms"/>  
	<!--initialSize: 初始化连接-->  
	<property name="initialSize" value="5"/>  
	<property name="maxTotal" value="20"/>  
	<!--maxIdle: 最大空闲连接-->  
	<property name="maxIdle" value="20"/>  
	<!--minIdle: 最小空闲连接-->  
	<property name="minIdle" value="20"/>  

	<!--removeAbandoned: 是否自动回收超时连接-->  
	<property name="removeAbandonedOnBorrow" value="false"/>
	<property name="logAbandoned" value="true"/>
	<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->  
	<property name="removeAbandonedTimeout" value="180"/>  
	<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于6秒-->  
	<property name="maxWaitMillis" value="3000"/>  
	<property name="validationQuery" value="SELECT 1 from dual"/>	  
	<property name="testOnBorrow" value="true"/> 
</property>

然后将poolman.xml的内容修改为:
<datasource>

		<dbname>bspf</dbname>
		<loadmetadata>false</loadmetadata>
		<enablejta>true</enablejta>
		<jndiName>ds0_datasource_jndiname</jndiName>
		<datasourceFile>dbcp.xml</datasourceFile>
		<autoprimarykey>false</autoprimarykey>
		<showsql>true</showsql>
		<keygenerate>composite</keygenerate>
                <RETURN_GENERATED_KEYS>false</RETURN_GENERATED_KEYS>
	</datasource>


druid数据源配置方法
如果需要切换为druid数据源,则需要编写druid.xml文件,内容为:
<property id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
	init-method="init"><!-- 这里不需要配置destroy-method,因为bboss持久层在jvm退出时会自动调用数据源的close方法 -->
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
	<property name="url" value="jdbc:oracle:thin:@//10.0.15.134:1521/orcl">
		<!-- 如果数据库url是加密的,则需要配置解密的编辑器 -->
		<!--<editor clazz="com.frameworkset.common.poolman.security.DecryptEditor"/> -->
	</property>
	<!-- 连接数据库的用户名 -->
	<property name="username" value="SANYGCMP">
		<!-- 如果账号是加密的账号,则需要配置解密的编辑器 -->
		<!-- <editor clazz="com.frameworkset.common.poolman.security.DecryptEditor"/> -->
	</property>
	<!-- 连接数据库的密码 -->
	<property name="password" value="SANYGCMP">
		<!-- 如果口令是加密的口令,则需要配置解密的编辑器 -->
		<!-- <editor clazz="com.frameworkset.common.poolman.security.DecryptEditor"/> -->
	</property>
	<property name="filters" value="stat" />
	<property name="maxActive" value="20" />
	<property name="initialSize" value="1" />
	<property name="maxWait" value="60000" />
	<property name="minIdle" value="1" />
	<property name="timeBetweenEvictionRunsMillis" value="3000" />
	<property name="minEvictableIdleTimeMillis" value="300000" />
	<property name="validationQuery" value="SELECT 1 from dual" />
	<property name="testWhileIdle" value="true" />
	<property name="testOnBorrow" value="true" />
	<property name="testOnReturn" value="false" />
	<property name="poolPreparedStatements" value="true" />
	<property name="maxPoolPreparedStatementPerConnectionSize"
		value="20" />
</property>

然后再修改poolman.xml:
<datasource>

		<dbname>bspf</dbname>
		<loadmetadata>false</loadmetadata>
		<enablejta>true</enablejta>
		<jndiName>ds0_datasource_jndiname</jndiName>
		<datasourceFile>druid.xml</datasourceFile>
		<autoprimarykey>false</autoprimarykey>
		<showsql>true</showsql>
		<keygenerate>composite</keygenerate>
                <RETURN_GENERATED_KEYS>true</RETURN_GENERATED_KEYS>
	</datasource>


同样可以反过来将druid切换为apache dbcp数据源。druid的特点就是监控功能做的比较好,如果只需要一个连接池的话,建议采用apache dbcp数据源(比较成熟一点)
分享到:
评论
1 楼 yin_bp 2015-02-26  
bboss持久层内置dbcp版本:commons-dbcp2-2.1
内置的pool版本 :commons-pool2-2.3

支持jdk 1.6+

相关推荐

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    bboss-datatran 支持多种数据源的接入,如关系型数据库(MySQL、Oracle等)、NoSQL数据库(HBase、MongoDB等)、消息队列(Kafka、RabbitMQ等)以及文件系统(HDFS、FTP等)。通过内置的适配器,用户可以方便地将...

    bboss mvcdemo 下载地址

    5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户的语言环境显示相应的信息。 6. **安全控制**:BBoss MVCDemo提供了一套完整的权限控制体系,包括角色、权限分配,以及基于URL的访问...

    基于Java的bboss-datatran数据采集与流批一体化处理工具设计源码

    本bboss-datatran项目基于Java开发,包含591个文件,包括Java源代码、...系统实现了数据采集、数据清洗转换处理、数据入库以及数据指标统计计算的流批一体化处理功能,界面友好,功能完善,适合用于数据采集与处理。

    bboss会话共享培训文档

    bboss会话共享通过为应用提供统一的会话管理功能,保证了即使用户被切换到其他节点,也能够继续访问之前保存的会话数据。 其次,bboss会话共享支持跨域和跨应用的会话共享,并能实现单点登录(SSO)功能。单点登录...

    由 bboss 开源的数据采集同步ETL工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    企业级J2EE开源框架bboss

    BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...

    bboss elasticsearch-5.7.8.rar

    6. `bboss-velocity-5.5.0.jar`:Velocity是Apache的一个模板引擎,用于生成动态内容,可能在BBoss Elasticsearch中用于构建自定义模板,生成用于导入Elasticsearch的JSON格式数据。 7. `bboss-core-5.5.0.jar`:这...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    **Elasticsearch 开发环境搭建与 BBoss 入门教程** Elasticsearch 是一个高度可扩展的开源全文搜索引擎,设计用于快速提供近实时的搜索和分析能力。BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    4. **源码分析**:标签中提到的“源码”意味着我们可以通过查看BBoss Persistent的源代码来了解其内部处理大字段的具体实现。通过这种方式,开发者可以更好地理解其工作原理,进行定制化开发或优化。 5. **工具支持...

    bboss ioc配置文件中使用外部属性文件介绍

    除了`&lt;property-placeholder&gt;`标签,BBoss还支持使用`&lt;context:property-placeholder&gt;`标签,它是Spring框架的一部分,也可以与BBoss集成使用。这种方式的配置类似,但提供了更多的选项,如默认值、忽略未定义的属性...

    bboss+es基本操作示例.zip

    bboss(Business Basic Operation Support)框架则是针对Elasticsearch设计的一套高效、易用的Java API,它提供了丰富的DSL(Domain Specific Language)操作支持,使得开发者能够更加便捷地与Elasticsearch进行交互...

    bboss 安全认证过滤器功能介绍

    6. **会话超时与退出**:为了防止会话固定攻击,BBoss框架会设置会话超时机制。此外,用户可以通过点击退出按钮来清除会话,此时`SYSAuthenticateFilter`会确保所有相关的认证信息从会话中移除。 通过阅读`...

    bboss-db-elasticsearch-tool-master_java_

    在Java中,传统的JDBC编程方式往往需要编写大量重复的SQL代码,而ORM框架如BBoss-DB-Elasticsearch-Tool则通过元数据(如注解或XML配置)将Java对象与数据库表映射起来,实现了数据的透明访问。这极大地提高了开发...

    bboss-elastic-tran:bboss 数据同步工具

    弹性Tran老板数据交换模块使用文档: : Bboss是一个很好的Elasticsearch Java Rest客户端。 它运行并访问像mybatis这样的elasticsearch来关联数据库。环境要求JDK要求:JDK 1.7+ Elasticsearch版本要求:1.X,2.X,5...

    bboss会话共享培训文档分享

    本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...

    bboss mvc 通过jsonp实现跨站跨域远程访问

    标题中的“bboss mvc 通过jsonp实现跨站跨域远程访问”指的是使用bboss MVC框架来处理JSONP(JSON with Padding)请求,以克服浏览器的同源策略限制,实现跨域数据交互。bboss MVC是一个Java Web开发框架,它提供了...

Global site tag (gtag.js) - Google Analytics