码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat (7.0)数据源配置

时间:2015-07-12 20:23:34      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

在Tomcat这个Java Web容器下通过配置DataSource(数据源)对象可以解决上面所述的问题。JDBC中的javx.sql.DataSource接口负责建立于数据库的连接,程序中直接从数据源中获取数据库连接。DataSource对象由Servlet容器Tomcat进行管理,其实获取数据库连接是从连接池中选取空闲连接。它基于Java中的JNDI(Java 命名与目录接口)来实现。

一、所有项目共用一个连接池

1、配置数据源context.xml:

在tomcat 的conf 目录下有context.xml 文件,这个文件就是配置数据源的。

在tomcat->conf->context.xml文件配置内容

<Resource

   name="jdbc/mysql"

   auth="Container"

   type="javax.sql.DataSource"

   maxActive="20"

   maxIdel="10"

   maxWait="1000"

   username="root"

   password="admin"

  driverClassName="com.mysql.jdbc.Driver"

   url="jdbc:mysql://127.0.0.1:3306/user" >

</Resource>

将 jdbc 驱动添加到Tomcat 的lib  目录下

2、配置JNDI资源引用web.xml:

在 项目的web.xml的 <web-app>   </web-app>中添加如下内容:

<resource-ref> 
      <res-ref-name>jdbc/mysql</res-ref-name> 
      <res-type>javax.sql.DataSource </res-type> 
      <res-auth>Container</res-auth> 
    </resource-ref> 

使用相对简单些的JNDI资源访问方式lookup方法,如下:

  1. Context sourceCtx = new InitialContext(); 
  2. DataSource ds =(DataSource)sourceCtx.lookup("java:comp/env/jdbc/mysql"); 
  3. conn = ds.getConnection();

ok 到这里数据库链接就获取到了


二、每个Web项目独立用自己连接池配置:把xml内容放入一个具体的项目目录

1、配置数据源context.xml:
在该项目目录的META-INF,创建context.xml,其实这个配置和tomcat/conf/context.xml这个文件是一样的,可以直接将那个context.xml 文件复制过来

内容如下:

    <?xml version="1.0" encoding="UTF-8"?>  
     <Context path="/">  
     <Resource  
      name="jdbc/mysql"  
      type="javax.sql.DataSource"  
      driverClassName="com.mysql.jdbc.Driver"  
      maxIdle="2"  
      maxWait="5000"  
      username="root"   
      password="admin"  
      url="jdbc:mysql://localhost:3306/user"  
      maxActive="4"/> 
      </Context> 
 

然后把JDBC驱动导入到 WEB-INF 下的lib文件夹里

2、配置JNDI资源引用web.xml:

并在该项目web.xml  <web-app> </web-app>加入
  <resource-ref>
  <res-ref-name>jdbc/mysql</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>


JNDI 获取数据源,数据库链接:

Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/mysql");
Connection conn = ds.getConnection();

********************* 元素属性说明**********************

<Resource>元素的属性说明: 

Name:指定Resource资源的JNDI名称;

auth:可选填Container或Application,指定Resource的管理者;

type:指定Resource资源的Java类名;

maxActive:设置数据库连接池中活动状态连接的最大数目,为0则不受限制;

maxIdle:设置数据库连接池中空闲状态连接的最大数目,为0则不受限制;

maxWait:设置数据库连接池中空闲状态连接的最长等待时间,超时则抛出异常,为-1则可无限等待;

username:指定数据库的用户名;

password:指定连接数据库的密码;

driverClassName:指定数据库的JDBC驱动器的Driver实现类名字(这里为MySQL数据库连接);

url:连接数据库的url。

*******************************************************

<resource-ref>元素的子元素说明: 

description:对所引用JNDI资源的描述;

res-ref-name:引用的JNDI资源的名称,与上面<Resource>元素中的name属性一致;

res-type:引用的JNDI资源的类名称,与上面<Resource>元素中的type属性一致;

res-auth:引用资源的管理者,上面<Resource>元素中的auth属性一致;




版权声明:本文为博主原创文章,未经博主允许不得转载。

Tomcat (7.0)数据源配置

标签:

原文地址:http://blog.csdn.net/qh_java/article/details/46852271

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!