Java选择加入org,Spring中配置DataSource数据源的几种选择

在Spring框架中有如下3种获得DataSource对象的方法:

从JNDI获得DataSource.

从第三方的连接池获得DataSource.

使用DriverManagerDataSource获得DataSource.

一、从JNDI获得DataSource

SpringJNDI数据源配置信息:

java:comp/env/jcptDataSourceJNDI

jcptDataSourceJNDI是tomcat或者其他应用服务器配置的JNDI.

关于JNDI的配置(tomcat):

修改tomcat目录conf/context.xml文件或server.xml文件:

type="javax.sql.DataSource"

maxActive="100"

maxIdle="30"

maxWait="10"

username="tysp"

password="12345678"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@192.168.1.35:1521:orcl"

/>

在server.xml中加入元素:元素用来定义JNDI Resource。

属性:描述

name:指定Resource的JNDI名字

auth:指定管理Resource的Manager,它有两个可选值:Container、Application

type:指定Resource所属的Java类名

元素中加入元素:元素用来指定各种参数值(也可以像上面那样配置)

属性:描述

factory       指定生成的DataResource的factory类名

maxActive     指定数据库连接池中处于活动状态的最大连接数目,0表示不受限制

maxIdle       指定数据库连接池中处于空闲状态的最大连接数目,0表示不受限制

maxWait       指定连接池中连接处于空闲状态的最长时间,超过会抛出异常,-1表示无限

username      指定连接数据库的用户名

password      指定连接数据库的口令

driverClassName    指定连接数据库的JDBC驱动程序

url             指定连接数据库的URL

3、通过JNDI获取DataSource:

Context context = new InitialContext();

DataSource ds = (DataSource)context.lookup("java:comp/env/jcptDataSourceJNDI");

4.在web.xml中加入(spring配置中可以不用)

DB Connection

jdbc/TestDB

javax.sql.DataSource

Container

在web.xml中加入元素:元素表示在Web应用中引用JNDI资源

属性:描述

description     对所引用的资源的说明

res-ref-name    指定所引用资源的JNDI名字,与元素中的name属性对应

res-type        指定所引用资源的类名字,与元素中的type属性对应

res-auth        指定所引用资源的Manager,与元素中的auth属性对应

更多信息:可以参考http://blog.csdn.net/cyxlzzs/article/details/7352837

二、从第三方的连接池获得DataSource

Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0

1) DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,

所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar。

org.hibernate.dialect.Oracle9Dialect

true

true

BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性,

以便Spring容器关闭时,数据源能够正常关闭。除以上必须的数据源属性外,还有一些常用的属性:

defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true;

defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false;

maxActive:最大连接数据库连接数,设置为0时,表示没有限制;

maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;

maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;

validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据;

removeAbandoned:是否自我中断,默认是 false ;

removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;

logAbandoned:是否记录中断事件, 默认为 false;

2)C3P0是一个开放源代码的JDBC数据源实现项目,C3P0类包位于Spring中lib/c3p0/c3p0-0.9.1.2.jar。

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >

classpath:jdbc.properties

三、使用DriverManagerDataSource获得DataSource

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@192.168.1.35:orcl

or_meal

or_meal

DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值