当前位置:
文档之家› Tomcat配置数据库连接池
Tomcat配置数据库连接池
• 如果Tomcat服务器中不是所有的工程都需要配置数据源:
在Web工程的META-INF目录中加入context.xml配置文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/mvc" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdle="3" maxWait="5000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:oracle" /> </Context> name---数据源的JDBC名 auth---表示认证方式,一般为Container type---表示数据源类型使用标准的javax.sql.DataSource maxActive---表示连接池当中最大激活的数据库连接 maxIdle 表示最大的空闲连接数 maxWait 当池的数据库连接已经被占用的时候,最大等待时间 username 表示数据库用户名 password 表示数据库用户的密码 driverClassName 表示JDBC DRIVER url 表示数据库URL地址
配置自带连接池3
需要在%Tomcat_Home%\conf\context.xml配置文件的<Context>元素中加 入如下内容: <ResourceLink name="jdbc/mvc" global="jdbc/oracle" type="javax.sql.DataSource" />
<Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdle="3" maxWait="5000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:oracle" /> name---数据源的JDBC名 auth---表示认证方式,一般为Container type---表示数据源类型使用标准的javax.sql.DataSource maxActive---表示连接池当中最大激活的数据库连接 maxIdle 表示最大的空闲连接数 maxWait 当池的数据库连接已经被占用的时候,最大等待时间 username 表示数据库用户名 password 表示数据库用户的密码 driverClassName 表示JDBC DRIVER url 表示数据库URL地址
用数据源获取数据库连接
import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource;
public static getConnection() { Connection conn = null; try { Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/env"); DataSource dataSource = (DataSource) ctx.lookup("jdbc/mvc"); conn = dataSource.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; }
配置全局数据源
• 如果Tomcat服务器中所有的工程都需要配置数据源:
需要在%Tomcat_Home%\conf\context.xml配置文件的<Context>元素中加 入如下内容:
<Resource name="jdbc/mvc" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdle="3" maxWait="5000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:oracle" /> name---数据源的JDBC名 auth---表示认证方式,一般为Container type---表示数据源类型使用标准的javax.sql.DataSource maxActive---表示连接池当中最大激活的数据库连接 maxIdle 表示最大的空闲连接数 maxWait 当池的数据库连接已经被占用的时候,最大等待时间 username 表示数据库用户名 password 表示数据库用户的密码 driverClassName 表示JDBC DRIVER url 表示数据库URL地址
commons-dbcp.jar commons-pool.jar commons-collections.jar 数据库驱动包(如classes12) 需手动copy到%Tomcat_Home%/common/lib包下 Tomcat 6.0要copy到%Tomcat_Home%/lib包下
配置局部数据源
引用全局数据源
配置在%Tomcat_Home%\conf\web.xml,加入如下信息 <resource-ref> <res-ref-name>jdbc/mvc</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> res-ref-name---数据源的JDBC名 ref-type---数据源类型 res-auth---数据源提供者
Tomcat配置数据库连接池
什么是连接池
• 连接池允许应用程序从连接池中获得一个连接 并使用这个连接,而不需要为每一个连接请求 重新建立一个连接。一旦一个新的连接被创建 并且放置在连接池中,应用程序就可以重复使 用这个连接而不必实施整个数据库连接创建过 程。
javax.sql.DataSource---JDBC的数据源接口 Connection Pool API
在Tomcat中配置Oracle自带的数据 库连接池1
• 本方式只需要在Tomcat的lib中加入 classes12.jar包,不需要其它的包
配置自带连接池2
需要在%Tomcat_Home%\conf\server.xml配置文件的 <GlobalNamingResources>元素中加入如下内容:
为什么使用连接池
• 在Web开发中,必须考虑并发情况下的数据处 理,对数据的访问操作会很多 • Connection对象只提供对数据库的连接,可进 行多次JDBC持久化会话 • 增强系统的并发性
Tomcat数据源介绍
• Tomcat所采用的是DBCP数据源,该数据 源为Apache基金会的开源子项目 • 所需使用包:
引用局部数据源
在Web工程的WEB-INF\web.xml中加入如下信息 <resource-ref> <res-ref-name>jdbc/mvc</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> res-ref-name---数据源的JDBC名 ref-type---数据源类型 res-auth---数据源提供者