zoukankan      html  css  js  c++  java
  • Tomcat中的数据源------>数据库连接池

    Tomcat中的数据源技术

    一、概述:

    1. 数据源技术的核心原理
      • 在一个对象池(也成数据库连接池Connection Pool)中    保存多个数据库连接对象  
      • 之后在进行数据库操作时,就不需要自己创建数据库连接对象,并且自己负责关闭数据库连接
      • 而是直接从数据库连接池中取出一个数据库连接对象来用,用完之后再放回数据库连接池中,等待其他用户继续使用
    2. Tomcat4.1.x版本之后都支持数据库连接池技术,开发者可以直接使用Tomcat容器中所提供的数据库连接池,来管理数据库连接对象(即DatabaseConnection对象)
    3. 如果不想使用Tomcat中提供的数据库连接池,也可以使用其他三方组件提供的数据库连接池,如Apache组织的C3P0组件实现了数据库连接池功能。  

    二、如何使用Tomcat中提供的数据库连接池(编程思路---->概述)

    • step1,首先要了解数据库连接池相关的一些概念
      • 最小连接数:没有用户连接至该网站时,池中应该维持的最小数据库连接数
      • 最大连接数:池中可以维持的最大数据库连接数
      • 最大等待时间:当池中没有可用的数据库连接时,用户首先要等待一段时间,如果等待的时间内有其他数据库连接被释放了,则该用户就可以获取并使用其他用户释放的数据库连接对象。但是如果等待的时间超出了“最大等待时间”,则用户无法取得数据库连接,程序报错。 
    • step2,明确下面的三件事:
      • 数据库连接池其实就是一个存放了若干数据库连接对象的池子,并且可以控制其最小连接数、最大连接数、最大等待时间等特性,并且支持数据库连接对象数目的动态变化, 
      • 可以使用java程序编写出拥有上述功能的数据库连接池
      • 也可以使用Tomcat中已经实现的数据库连接池
      • 或者也可以使用其他三方组件所实现的数据库连接池(如Apache的C3P0组件)
    • step3,我们这里使用的是Tomcat中已经实现的数据库连接池,下面讲述如何在自己的project中使用Tomcat中的数据库连接池
      • step3.1,客户端程序通过查询JNDI上的key获得一个DataSource对象
      • step3.2,通过DATASource对象取得ConnectionPool中保存的一个数据库连接
      • step3.3,使用step3.2中获取的数据库连接对象实例化PreparedStatement对象
      • step3.4,执行相应的SQL语句,将执行结果存放至ResultSet对象中  

     三、使用Tomcat中已经实现的数据库连接池(编程思路---->具体编程)

    • step1,配置Tomcat安装目录/conf/server.xml文件,在Tomcat容器中为你的project创建一个   数据库连接池实例对象
        • 如上所述,在Tomcat的server.xml中为自己的project创建了一个数据库连接池,并且设定了该数据库连接池的最小和最大连接数、用户最大等待时间。并且配置了该数据库连接池中所存放的数据库连接对象的驱动程序、DBURL、数据库连接用户名和密码。

    •  step2,配置自己的project的web.xml,指明自己的project想要使用的数据库连接池名称(即数据源名称)

        • step1中在Tomcat安装目录下的conf/server.xml中通过相应配置,为你的Project创建了一个数据库连接池。   并且由Tomcat容器负责管理该数据库连接池对象实例,以及数据库连接池中的数据库连接对象

        • 下面就需要在你自己的project的web.xml中也添加相应的配置,告诉你的project中的程序,如果想要使用数据库连接操作数据库的话,就从Tomcat所维持的数据库连接池中获取相应的数据库连接对象   

    • step3,在客户端程序中从数据库连接池获取数据库连接对象,并且使用完该连接对象后重新将其释放至数据库连接池

        • step3.1,初始化名称查找上下文:Context

        • step3.2,通过server.xml中配置的数据源名称(也即数据库连接池名称)查找DataSource对象(也即数据库连接池对象)

        • step3.3,从上述数据库连接池中获取一个数据库连接对象(也即通过DataSource对象获取Connection对象)

        • step3.4,使用上述数据库连接对象(也即Connection对象)

        • step3.5,释放上述Connection对象,将其放回数据库连接池中,等待后面的用户使用

        • 实例一,在jsp页面中通过DataSource获取Connection对象,并且使用后释放该对象

            •     
        • 实例二,在java程序中(如持久层代码中)通过DataSource获取Connection对象,并且使用后释放该对象

            •         

               

                  
  • 相关阅读:
    Building a flexiable renderer
    Indirect Illumination in mental ray
    我的心情
    Cellular Automata
    Subsurface Scattering in mental ray
    Shader Types in mental ray
    BSP Traversal
    我的渲染器终于达到了MR的速度
    How to handle displacement and motion blur
    说明
  • 原文地址:https://www.cnblogs.com/lxrm/p/7011401.html
Copyright © 2011-2022 走看看