Tomcat连接池

A:开发javaWeb应用,必须使用一个JavaWeb服务器,JavaWeb服务器都内置数据源,比如Tomcat(DBCP,因其中有DCBPde的jar包),数据源只需要配置服务器即可,步骤如下:
    a:拷贝数据库连接的jar到tomcatlib目录下
    b:配置数据源XML文件     
        1:如果把配置信息写到tomcat下的conf目录下的context.xml中,那么所有的应用都能使用此数据源。

        2:如果是在当前应用的META-INF中创建context.xml,编写数据源,那么只有当前应用可以使用

B:Tomcat中的context.xml配置文件如下:
    
       <?xml version="1.0" encoding="UTF-8"?>
        <Context>

        <Resource name="jdbc/day40_datasource" auth="Container"         type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/db1"/>

        </Context>


C:在Tomcat中使用连接池代码如下:

<%@page import="javax.naming.Context"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="java.sql.Connection"%>
<%@page import="javax.sql.DataSource"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>

  <body>
       <%
           //使用tomcat提供的数据源(连接池)
            Context initContext = new InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            //通过name指明连接池使用的配置信息  JNDI
            DataSource ds = (DataSource)envContext.lookup("jdbc/day40_datasource");
            Connection conn = ds.getConnection();
            out.print(conn);
        %>
  </body>
</html>



D:JNDI(Java Naming and Directory  Interface):它理解为一种将对象和名字捆绑的技术,对象工厂负责生产出对象,这些对象都和唯一的名字绑在一起,外部资源可以通过名字获得某对象的引用.

E:比如在Tomcat中的context.xml中配置如下的资源
  
  
<Resource name="jdbc/day40_datasource" auth="Container"  type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/db1"/>

    <Resource name="jdbc/day41_datasource" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:oracle://localhost:3306/db1"/>

    <Resource name="jdbc/day42_datasource" auth="Container"         type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:sqlserver://localhost:3306/db1"/>


         其中:
            name 表示指定的jndi名称
            auth 表示认证方式,一般为Container
            type 表示数据源床型,使用标准的javax.sql.DataSource
            maxActive 表示连接池当中最大的数据库连接
            maxIdle 表示最大的空闲连接数
            maxWait 当池的数据库连接已经被占用的时候,最大等待时间
            logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
            username 表示数据库用户名
            password 表示数据库用户的密码
            driverClassName 表示JDBC DRIVER
            url 表示数据库URL地址
那么可以通过如下java代码来简单通过名字(DataSource)envContext.lookup(name)来查找需要连接的数据库:
         
        <%
           //使用tomcat提供的数据源(连接池)
            Context initContext = new InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            //通过name指明连接池使用的配置信息  JNDI
            DataSource ds = (DataSource)envContext.lookup("jdbc/day40_datasource");
            Connection conn = ds.getConnection();
            out.print(conn);
        %>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值