首页 相关文章 Java中数据库连接池原理机制的详细讲解

Java中数据库连接池原理机制的详细讲解

  连接池的基本工作原理

  1、基本概念及原理

  由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效治理。我们知道,对于共享资源,有一个很闻名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的治理机制监视数据库的连接的数量?使用情况,为系统开发?测试及性能调整提供依据。

  2、服务器自带的连接池

  JDBC的API中没有提供连接池的方法。一些大型的WEB应用服务器如BEA的WebLogic和IBM的WebSphere等提供了连接池的机制,但是必须有其第三方的专用类方法支持连接池的用法。

  连接池要害问题分析

  ...[ 查看全文 ]

2016-02-19 标签:
  • 因为工作需要要使用到连接池,所以拜读了互联网上众多前辈的文章,学了不少经验,这里想做一个小结,加上自己的想法和在一起,希望能给大家一些帮助。 目的: 消除数据库频繁连接带来的开销和瓶颈。 解决方案: 不过多的限制用户的使用,既不能太多的要求用户按规定的方法得到和使用数据库连 尽量保持用户的习惯 目前的很多方法都是要求用户只能按规定方法使用连接,不能使用直...[ 查看全文 ]
  • 先来了解下什么是数据库连接池 数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。 在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立...[ 查看全文 ]
  • 标签:Web开发
    1.在$CATALINA_HOME/conf/server.xml中添加配置信息,声明连接池的具体信息,添加内容如下: !--声明连接池-- Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"/ !-- 对连接池的参数进行设置 -- ResourceParams name="jdbc/mysql" parameter namefactory/name valueorg.apache.commons.dbcp.BasicDataSourceFactory...[ 查看全文 ]
  • 1、配置连接池 通过http://localhost:7001/console进入管理控制台 在左侧菜单中依次进入mydomain(自定义的域名称)-服务-JDBC-连接缓冲池 点击“配置新的 JDBC Connection Pool... ” 数据类型选择:Oracle 数据库驱动程序选择:Oracle's Driver (Thin) Version:9.0.1,0.2.0,10 点击右下角的“继续” 在名称中写入想要设置的连接池名称(本例为:myconnection1) 数据库名称:要访问的数据库名称...[ 查看全文 ]
  • 标签:Java JAVA基础
      三、类DBConnectionPool说明 该类在209至345行实现,它表示指向某个数据库的连接池。数据库由JDBC URL标识。一个JDBC URL由三部分组成:协议标识(总是jdbc),驱动程序标识(如 odbc、idb、oracle等),数据库标识(其格式依赖于驱动程序)。例如,jdbc:odbc:de mo,即是一个指向demo数据库的JDBC URL,而且访问该数据库要使用JDBC-ODBC驱动程序。每个连接池都有一个供客户程序使用的名字以及可选的...[ 查看全文 ]
  • 标签:Java JAVA基础
      JSP中tomcat的SQL Server2000数据库连接池的配置 环境: 1. 数据库:Microsoft SQL Server 2000 2. 数据库驱动程序:net.sourceforge.jtds.jdbc.Driver JNDI(Java Naming and Directory Interface)概述: Tomcat4(5)提供了一个与Java Enterprise Edition应用服务相兼容的JNDI--InitialContext实现实例。它的初始数据设置在$CATALINA_HOME/conf/server.xml文件里,并可能在网页应用环境描述(/WEB...[ 查看全文 ]
  • 标签:Java JAVA基础
      引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术。在Web应用开发的早期,主要使用的技术是CGI﹑ASP﹑PHP等。之后,Sun公司推出了基于Java语言的Servlet+Jsp+Java...[ 查看全文 ]
  • 标签:Java JAVA基础
      Java Servlet作为首选的服务器端数据处理技术,正在迅速取代CGI脚本。Servlet超越CGI的优势之一在于,不仅多个请求可以共享公用资源,而且还可以在不同用户请求之间保留持续数据。本文介绍一种充分发挥该特色的实用技术,即数据库连接池。 一、实现连接池的意义 动态Web站点往往用数据库存储的信息生成Web页面,每一个页面请求导致一次数据库访问。连接数据库不仅要开销一定的通讯和内存资源,还必...[ 查看全文 ]
  • 1、用数据库软件(如:mysql)创建数据库,在数据库注册时用到的数据库名则为刚刚创建的数据 库,若为数据源名,则需ODBC配置。 2、将驱动程序放在D:\Tomcat 5.5\common\lib或相应的开发工具的lib下, 对D:\Tomcat 5.5\conf\web.xml修改,打开web.xml,在/web-app的前面添加以下内容: resource-ref descriptionDB Connection/description res-ref-namejdbc/mysql/res-ref-name res-...[ 查看全文 ]
  • /* * 创建日期 2005-9-27 * * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */ package person.fane.test; import java.sql.*; /** * A JDBC test application for Oracle * @author Fane * @version 1.0.0 * @since JDK1.4 */ public class OracleTest { private final String oracleDr...[ 查看全文 ]
  • 标签:Java JAVA基础
      Tomcat相信大家已经很熟悉了,作为一种免费而强大的java web server,得到了很多java爱好者的青睐,最新版本的tomcat5支持servlet2.4和jsp2.0,今天我将采用Tomcat5和Ms sqlserver 000一起来开始数据库连接池配置之旅。 需要的准备 1、jdk 我使用的版本1.4.01 2、Tomcat 5 我使用的是5.0.16版本 下载地址:http://jakarta.apache.org/site/binindex.cgi 3、Mssql server 2000 数据库 4、Mssql server ...[ 查看全文 ]
  • 此文章主要向大家描述的是Java连接MYSQL 数据库(以MySQL为例)的实际操作步骤,我们是以相关实例的方式来引出Java连接MYSQL 数据库的实际操作流程,以下就是文章的主要内容描述。 当然,首先要安装有JDK(一般是JDK1.5.X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动mysql-connector-java-5.0.5.zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,...[ 查看全文 ]
  • 标签:Java JAVA基础
    1、java数据库操作基本流程 2、几个常用的重要技巧: 可滚动、更新的记录集 批量更新 事务处理 java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 1、取得数据库连接 1)用DriverManager取数据库连接 例子: String className,url,uid,pwd; className = "oracle.jdbc.driver.OracleDriver";...[ 查看全文 ]
  • 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。 创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下: CREATESEQUENCE序列名 [INCREMENTBYn] [STARTWITHn] [{MAXVALUE/MINVALUEn|NOMAXVALUE}] [{CYCLE|NOCY...[ 查看全文 ]
  • 标签:Java JAVA基础
      <Context path="/quickstart" docBase="quickstart"     <Resource name="jdbc/quickstart" scope="Shareable" type="javax.sql.DataSource"/     <ResourceParams name="jdbc/quickstart"         <parameter             <namefactory</name  &...[ 查看全文 ]
  • 在一个update和insert操作频繁的表中,少量数据测试的时候运行良好,在实际运营中,因数据量比较大(21万条记录),会出现死锁现象,用show processlist查看,可以看到一个update语句状态是Locked,一个delete语句状态是Sending data。查看了一下参考手册,把锁定相关的资料整理下来,以便自己记录和追踪该问题的解决情况: MySQL 5.1支持对MyISAM和MEMORY表进行表级锁定,对BDB表进行页级锁定,对...[ 查看全文 ]
  • 标签:Web开发
    1.配置Context.xml文件 代码如下: Resource name="jdbc/books" //引用名可以自定义 auth="Container" //指定管理DataSource的Manager type="javax.sql.DataSource" //指定包名 maxActive="100" //最大可活动量 maxIdle="30" //最大空限量 maxWait="10000" //最大等待时间 username="sa" //用户 password="sa" //密码 driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDrier"; //连接的...[ 查看全文 ]
  • 代码如下所示: 代码如下: /** *ConnectionUtil .java * * */ package com.cai.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties ; public class ConnectionUtil {  /**   * 1   *在方法中固化连接参数   * @return  数据库连接   */  public Connection getConnection(){   Connection conn = null ;   try...[ 查看全文 ]
  • 您也可以提供几个连接字符串修饰符来控制连接池行为,请参见本主题内下文中“使用连接字符串关键字控制连接池”这一节。 池的创建和分配 当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。 在以下示例中,将创建三个新的 SqlConnection 对象,...[ 查看全文 ]
  • 问题背景及特点: 我们在使用多用户数据库时常常会碰到数据更新失败、删除失等情况,如果有多个用户且同时访问一个数据库则当他们的事务同时使用相同的数据时可能会发生并发问题。 并发问题包括: 1.丢失或覆盖更新。(幻像读) 2.未确认的相关性(脏读)。 3.不一致的分析(非重复读)。 详细描述: 1.丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。...[ 查看全文 ]
手机页面 收藏网站 回到头部