name:表示以后要查找的名称。通过此名称可以找到DataSource,此名称任意更换,但是程序中最终要查找的就是此名称,为了不与其他的名称混淆,所以使用jdbc/oracle,现在配置的是一个jdbc的关于oracle的命名服务。
auth:由容器进行授权及管理,指的用户名和密码是否可以在容器上生效
type:此名称所代表的类型,现在为javax.sql.DataSource
driverClassName:数据库连接的驱动程序
url:数据库连接的地址
username:数据库连接的用户名
password:数据库连接的密码
initialSize: 初始化连接:连接池启动时创建的初始化连接数量
maxActive:最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制
maxIdle:最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制
minIdle:最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建
maxWait:最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待
removeAbandoned:为是被泄露并且可以被删除,如果空闲时间超过removeAbandonedTimeout. 设置为true可以为写法糟糕的没有关闭连接的程序修复数据库连接
logAbandoned:标记当Statement或连接被泄露时是否打印程序的stack traces日志。被泄露的Statements和连接的日志添加在每个连接打开或者生成新的Statement,因为需要生成stack trace
removeAbandonedTimeout:泄露的连接可以被删除的超时值, 单位秒
timeBetweenEvictionRunsMillis:在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程
minEvictableIdleTimeMillis:在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程
numTestsPerEvictionRun:在每次空闲连接回收器线程(如果有)运行时检查的连接数量
validationQuery:SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录
poolPreparedStatements:开启池的prepared statement 池功能
maxOpenPreparedStatements:statement池能够同时分配的打开的statements的最大数量, 如果设置为0表示不限制
context.xml放在META-INF文件夹下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name=" java/mysql "
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/database"
username="root"
password=""
initialSize="3"
maxActive="30"
maxIdle="1"
minIdle="1"
maxWait="-1"
removeAbandoned="true"
logAbandoned="true"
removeAbandonedTimeout="60"
timeBetweenEvictionRunsMillis="-1"
minEvictableIdleTimeMillis="-1"
numTestsPerEvictionRun="100"
validationQuery="select now() from dual"
poolPreparedStatements="true"
maxOpenPreparedStatements="0"/>
auth:由容器进行授权及管理,指的用户名和密码是否可以在容器上生效
type:此名称所代表的类型,现在为javax.sql.DataSource
driverClassName:数据库连接的驱动程序
url:数据库连接的地址
username:数据库连接的用户名
password:数据库连接的密码
initialSize: 初始化连接:连接池启动时创建的初始化连接数量
maxActive:最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制
maxIdle:最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制
minIdle:最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建
maxWait:最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待
removeAbandoned:为是被泄露并且可以被删除,如果空闲时间超过removeAbandonedTimeout. 设置为true可以为写法糟糕的没有关闭连接的程序修复数据库连接
logAbandoned:标记当Statement或连接被泄露时是否打印程序的stack traces日志。被泄露的Statements和连接的日志添加在每个连接打开或者生成新的Statement,因为需要生成stack trace
removeAbandonedTimeout:泄露的连接可以被删除的超时值, 单位秒
timeBetweenEvictionRunsMillis:在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程
minEvictableIdleTimeMillis:在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程
numTestsPerEvictionRun:在每次空闲连接回收器线程(如果有)运行时检查的连接数量
validationQuery:SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录
poolPreparedStatements:开启池的prepared statement 池功能
maxOpenPreparedStatements:statement池能够同时分配的打开的statements的最大数量, 如果设置为0表示不限制
context.xml放在META-INF文件夹下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name=" java/mysql "
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/database"
username="root"
password=""
initialSize="3"
maxActive="30"
maxIdle="1"
minIdle="1"
maxWait="-1"
removeAbandoned="true"
logAbandoned="true"
removeAbandonedTimeout="60"
timeBetweenEvictionRunsMillis="-1"
minEvictableIdleTimeMillis="-1"
numTestsPerEvictionRun="100"
validationQuery="select now() from dual"
poolPreparedStatements="true"
maxOpenPreparedStatements="0"/>
</Context>
web.xml中:
<resource-ref>
<description>my DB Connection</description>
<res-ref-name>java/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
spring中:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/java/mysql"/>
</bean>