• 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对象,并且使用后释放该对象

            •         

               

                  
  • 相关阅读:
    oracel 复制A列的内容到列
    视图转为表
    面向对象
    银弹效应
    解决linux删除文件后空间没有释放问题
    HttpAnalyzerStdV7安装教程
    HttpUploader6.2-process版本
    Chrome浏览器控件安装方法
    Firefox浏览器控件安装方法
    通达OA整合教程
  • 原文地址:https://www.cnblogs.com/lxrm/p/7011401.html
Copyright © 2020-2023  润新知