Tomcat应用中数据源的配置主要分两种情况:局部和全局
接下来我们分别看看两种数据源的配置情况,不同tomcat间数据源的配置差异这里不做比对
示例中我们使用tomcat7.0.27,接下来我们先看局部数据源的配置。
一、局部数据源
局部数据源,是tomcat中各Context结点项目的数据源配置,包含在项目Context信息中,各数据源独立存在。
进入tomcat的conf目录下,打开server.xml配置文件,找到我们需要配置数据源的项目servletDemo的Context结点信息
在Context结点间,添加数据源配置信息
<Resource name="jdbc/test" scope="Shareable" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" url="jdbc:mysql://localhost:3306/sampledb" driverClassName ="com.mysql.jdbc.Driver" username="root" password="root" maxActive="100" maxIdle="30" maxWait="10000" />
其中各参数项的含义为
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址
在工程的web.xml中配置引用连接
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
下面我们在代码中进行数据源的调用
// 初始化查找命名空间 Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test"); // 获取数据库连接 Connection conn = ds.getConnection();到这里,局部数据源配置就完了。
二、全局数据源配置
全局数据源配置,还是在server.xml中。不过分两步来配置
第一步,配置数据源信息
找<GlobalNamingResources>结点
<GlobalNamingResources>结点上附带部分注释
<!-- Global JNDI resources Documentation at /docs/jndi-resources-howto.html --> 顾名思义,全局JNDI资源
在<GlobalNamingResources>结点内添加数据源配置信息resource
<Resource name="jdbc/test" scope="Shareable" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" url="jdbc:mysql://localhost:3306/sampledb" driverClassName ="com.mysql.jdbc.Driver" username="root" password="root" maxActive="100" maxIdle="30" maxWait="10000" />
第二步,配置引用连接
找到Context结点,在context结点内添加 <ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource" /> 引用信息
至此,数据源配置完成。
代码中调用与局部相同,这里不再赘述。