精华内容
下载资源
问答
  • 关于java数据库连接池配置的几种方式今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,(已Mysql数据库为例)一,Tomcat配置数据源:方式一:在WebRoot下面建文件夹META-INF,里面建一个...

    关于java数据库连接池配置的几种方式

    今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,(已Mysql数据库为例)

    一,Tomcat配置数据源:

    方式一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,内容如下:

    maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"

    username="root" password="111111" driverClassName="com.mysql.jdbc.Driver"

    url="jdbc:mysql://localhost:3306/testdb" />

    方式二:在tomcat6.0的目录conf下面的context.xml中,修改原来的context标签,改成内容如下:

    WEB-INF/web.xml

    maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"

    username="root" password="111111" driverClassName="com.mysql.jdbc.Driver"

    url="jdbc:mysql://localhost:3306/testdb" />

    方式三:在配置虚拟目录时,也就是在配置conf下面的server.xml时,在context标签内改成如下形式:

    maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"

    username="root" password="111111" driverClassName="com.mysql.jdbc.Driver"

    url="jdbc:mysql://localhost:3306/testdb" />

    配置文件中Resource标签中各属性的含义:

    driverClassName - JDBC 所用到的数据库驱动的类全名.

    maxActive - 连接池在同一时刻内所提供的最大活动连接数。

    maxIdle - 连接池在空闲时刻保持的最大连接数.

    maxWait - 当发生异常时数据库等待的最大毫秒数 (当没有可用的连接时).

    password - 连接数据库的密码.

    url - 连接至驱动的URL. (为了向后兼容, DRIVERNAME也被允许.)

    user - 数据库用户名.

    各种配置方式的范围也应该是不一样的。我在这就不细说了,总之就是在Context标签下面配置个Resource标签即可。

    测试代码:

    Context initContext = new InitialContext();

    Context envContext  = (Context)initContext.lookup("java:/comp/env");

    DataSource ds = (DataSource)envContext.lookup("jdbc/test");

    System.out.println(ds.getConnection());

    打印出来不是null应该就成功了。

    注意,测试的时候要在tomcat内测试,也就是要在TOMCAT这个容器内(不要闲麻烦,写个简单的JSP页面测下,用个就可以了,相当简单的)。不在tomcat这个容器里面测,会抛异常:

    ... javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

    二,Hibernate配置连接池有三种方法:

    方式1  使用Hibernate自带的连接池。

    com.mysql.jdbc.Driver

    jdbc:mysql://localhost:3306/feifei

    root

    true

    org.hibernate.dialect.MySQLDialect

    我自己的配置如下,注释的部分,他是公用的,其它的连接池需要用到!

    true

    ... ... ... ...

    =================================================================================

    方式2: 使用配置文件指定的数据库连接池。

    连接池现在有dbcp、c3p0、proxoop,其实我原来就知道dbcp

    其中dbcp、c3p0的配置只需要在 上面 的配置上加入些配置就行,hibernate会自动识别数据库连接池

    配置dbcp需要加入:

    配置c3p0需要加入:

    配置proxoop有些不同,不能仅仅加入,还需要改动:

    基本配置如下:

    dbpool

    test/huatech/conf/ProxoolConf.xml

    org.hibernate.connection.ProxoolConnectionProvider

    特别注意:下面文件的路径要配置正确,否则FileNotFound

    关联文件:test/huatech/conf/ProxoolConf.xml配置如下:

    dbpool

    jdbc:informix-sqli://192.168.0.188:1526/db_crm:informixserver=ol_sx;NEWLOCALE=zh_cn,en_us;NEWCODESET=gbk,8859_1,819;

    com.informix.jdbc.IfxDriver

    90000

    20

    5

    100

    10

    =================================================================================

    方式3: 从容器中获取得到连接池(如:Tomcat)

    用服务器本身的连接池:如Tomcat、resin、weblogic等

    hibernate配置如下:

    其中java:comp/env/jdbc/crm的jdbc/crm是对应的服务器中数据库连接池名字,需要在对应的环境中配置

    Tomcat配置如第一种Tomcat配置方式所描述,注意jndi的name根据情况修改,要与hibernate所使用的名字对应起来。

    =================================================================================

    上面配置中需要用到各自数据库连接池的jar包,在hibernate包中有,如果需要最新的可以到各自网站下载。

    三,Spring配置连接池的方法:

    com.mysql.jdbc.Driver

    jdbc:mysql://localhost:3306/dbname

    root

    ******

    100

    1000

    30

    true

    //自动回收连接池,避免连接池泄露

    true

    60

    四,也是我今天要说的最后一种,则是通过代码的编写配置连接池,代码如下:

    import  java.sql.*;

    import  java.sql.DataSource;

    import  org.apache.commons.dbcp.BasicDataSource;

    public class ConnectionPool{

    private static BasicDataSource dbs = null;

    public static DataSource setupDataSource(){

    bds = new BasicDataSource();

    //设置驱动程序

    bds.sestDriverClassName("com.mysql.jdbc.Driver");

    //设置连接用户名

    bds.setUsername("root");

    //设置连接密码

    bds.setPassword("root");

    //设置连接地址

    bds.setUrl("jdbc:mysql://localhost:3306/databasename");

    //设置初始化连接总数

    bds.setInitialSize(50);

    //设置同时应用的连接总数

    bds.setMaxActive(-1);

    //设置在缓冲池的最大连接数

    bds.setMaxIdle(-1);

    //设置在缓冲池的最小连接数

    bds.setMinIdle(0);

    //设置最长的等待时间

    bds.setMaxWait(-1);

    return (DataSource)bds;

    }

    //显示连接池的连接个数的方法

    public static void printDataSourceStats(DataSource ds) throws SQLException{

    bds = (BasicDataSource)ds;

    System.out.println();

    System.out.println();

    }

    //关闭连接池的方法

    public static void shutdownDataSource(DataSource ds) throws SQLException{

    bds = (BasicDataSource)ds;

    bds.close();

    }

    }

    要获得连接池只许使用该类的静态方法setupDataSource()即可

    以上是我总结的几种配置数据库连接池的方法,这些只是常用的几种配置方法,应该还有其他方式方法,只要各位朋友肯花功夫,总能找到适合你的一种配置方式,祝您好运!

    展开全文
  • java配置数据库连接池的方法步骤java配置数据库连接池的方法步骤,需要的朋友可以参考一下先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库...

    java配置数据库连接池的方法步骤

    java配置数据库连接池的方法步骤,需要的朋友可以参考一下

    先来了解下什么是数据库连接池

    数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。

    在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请

    求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操

    作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例

    如:Weblogic,WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术是非常必要的。

    数据库连接池的主要操作如下:

    (1)建立数据库连接池对象(服务器启动)。

    (2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。

    (3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。

    (4)存取数据库。

    (5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。

    (6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。

    配置步骤:

    1.在Tomcat  conf/content.xml中节点内添加如下内容

    auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="30"

    maxWait="10000" username="sa" password="120010"

    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

    url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>

    name:之后我们要调用resource时候用到

    type:是链接数据库时候用到的java扩展包下的类

    maxActive:最大连接数

    maxIdle:是空闲时候最大连接数

    maxwait:空闲判断标准

    注意:

    1).该配置文件里不允许有中文;各个属性间的用一个空格隔开

    2).要将对应链接数据库的jar包放到tomcat /lib文件夹中工程中就不需要存放了

    下面还中是链接oracle的

    url="jdbc:oracle:thin:@192.168.2.102:1521:orcl"

    driverClassName="oracle.jdbc.driver.OracleDriver" password="bg"

    username="test" maxWait="10000" maxIdle="30" maxActive="100"

    auth="Container"/>

    2.在工程的web.xml中添加如下代码

    jdbc/news

    javax.sql.DataSource

    Container

    这里标签里面的名字就是在content.xml文件中的name的名字

    3.得到数据库连接池中的Connection对象

    Context context=new InitialContext();

    DataSourceds=(DataSource)context.lookup("java:comp/env/jdbc/news");

    Connectionconn = ds.getConnection();

    注意:context是javax.namingx下的类,dataSource是javax.sql下的类 ,"java:comp/env/jdbc/news"中:java:comp/env是固定写法 jdbc/news是jndi名称(Tomcat中配置的那个name)

    如果我们不是在web.xml中配置数据源,我们用spring来控制数据库链接方法步骤:

    1).在配置文件中添加如下节点

    配置好了获取sql语句查询数据有多少条:

    调用的时候直接Dao类继承JdbcDaoSupport类(spring.jar中的类)

    int count = this.getJdbcTemplate().queryForInt("select * from users");

    展开全文
  • JAVA数据库连接池总结

    2021-01-25 14:09:45
    一、数据库连接池数据库连接池的基本思想就是为数据库连接建立一个缓冲池,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从“缓冲池”中取出一个,使用完之后在放回去,节省连接建立、释放过程...

    一、数据库连接池

    数据库连接池的基本思想就是为数据库连接建立一个缓冲池,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从“缓冲池”中取出一个,使用完之后在放回去,节省连接建立、释放过程中的资源、时间消耗。

    目前主流的数据库连接池有DBCP、C3P0、DRUID等几种。

    1、DBCP

    DBCP来自apache家族,是基于common-pool对象池机制的数据库连接池,目前有三个不同的版本支持不同的JDBC规范:

    DBCP v1.3版本(JDBC3)

    DBCP v1.4版本(JDBC4)

    DBCP v2.X版本(JDBC4.1)

    DBCP2 代表的也就是2.X版本,相比较于1.x版本,性能有了较大提升,支持JMX和一些新特性;DBCP2.X和DBCP1.x是不兼容的,包括具体配置上面的参数也有些不同;项目引用的类名称、maven仓库的位置坐标也不一样。

    2、C3P0

    C3P0 支持JDBC3规范和JDBC2的标准扩展; 在hibernate项目中使用的比较多;

    3、DRUID

    Druid 是阿里巴巴开源平台上一个数据库连接池实现,除了数据库连接池外,还提供了一系列内置的jdbc组件,可以监控DB连接池和sql执行情况。

    二、主要区别

    1、c3p0提供最大空闲时间,当连接超过最大空闲连接时间,当前连接就会被断掉。

    2、DBCP提供最大连接数,当连接数超过最大连接数时候,所有连接都会被断开。

    3、Druid结合了C3P0、DBCP的优点,同时针对不同的数据库,在实现上有针对性的优化。

    三、使用建议

    1、Druid除了连接池,监控功能也不错,便于优化,一般情况下推荐使用;

    2、如果使用的是oracle数据库,不建议使用c3p0,因为c3p0不遵循LRU;

    四、属性配置

    spring中datasource的配置分别如下:

    1、DBCP配置

    2、DBCP2配置

    3、C3P0配置

    4、DRUID配置

    init-method="init" destroy-method="close">

    value="20" />

    展开全文
  • java数据库连接池

    2021-03-09 09:46:45
    编写标准的数据源(规范)Java数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!常见的第三方连接池如下:C3P0是一个...

    编写标准的数据源(规范)

    Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!

    常见的第三方连接池如下:

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0是异步操作的,所以一些操作时间过长的JDBC通过其它的辅助线程完成。目前使用它的开源项目有Hibernate,Spring等。C3P0有自动回收空闲连接功能

    阿里巴巴-德鲁伊druid连接池:Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求。

    DBCP(DataBase Connection Pool)数据库连接池,是Apache上的一个Java连接池项目,也是Tomcat使用的连接池组件。dbcp没有自动回收空闲连接的功能。

    C3P0连接池

    使用步骤

    导入c3p0-0.9.1.2.jar

    拷贝配置文件到src目录

    创建连接池(配置文件自动读取的)

    编写配置文件 c3p0-config.xml

    com.mysql.jdbc.Driver

    jdbc:mysql://localhost:3306/day19

    root

    root

    5

    c3p0连接池常用的配置参数:

    参数说明initialPoolSize初始连接数

    maxPoolSize最大连接数

    checkoutTimeout最大等待时间

    maxIdleTime最大空闲回收时间

    初始连接数:刚创建好连接池的时候准备的连接数量

    最大连接数:连接池中最多可以放多少个连接

    最大等待时间:连接池中没有连接时最长等待时间

    最大空闲回收时间:连接池中的空闲连接多久没有使用就会回收

    编写Java代码

    /**

    * C3P0连接池的工具类

    *

    */

    public class C3P0Utils {

    //1. 创建一个C3P0的连接池对象(会自动读取src目录下的c3p0-config.xml,所以不需要我们解析配置文件)

    public static DataSource ds = new ComboPooledDataSource();

    //2. 提供 从连接池中 获取连接对象的方法

    public static Connection getConnection() throws SQLException {

    Connection conn = ds.getConnection();

    return conn;

    }

    //3. 提供 获得数据源(连接池对象)的方法

    public static DataSource getDataSource(){

    return ds;

    }

    }

    Druid 连接池

    Druid是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是国内目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。如:一年一度的双十一活动,每年春运的抢火车票。

    DRUID连接池使用的jar包:druid-1.1.16.jar

    Druid连接池工具类编写

    步骤:

    导入DRUID jar 包

    拷贝配置文件到src目录

    根据配置文件 创建连接池对象

    从连接池对象获得连接

    实现:

    创建druid.properties, 放在src目录下

    driverClassName=com.mysql.jdbc.Driver

    url=jdbc:mysql://localhost:3306/day19

    username=root

    password=root

    编写Java代码

    /**

    * 阿里巴巴的连接池 Druid 工具类

    */

    public class DruidUtils {

    /*

    1. 加载 druid.properties 配置文件

    2. 创建 Druid 连接池对象

    3. 提供 获得 连接池对象的方法

    4. 提供 从连接池中 获取连接对象Connection的 方法

    */

    public static DataSource ds = null;

    static {

    try {

    //1. 加载 druid.properties 配置文件

    InputStream is = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");

    Properties prop = new Properties();

    prop.load(is);

    //2. 创建 Druid 连接池对象

    ds = DruidDataSourceFactory.createDataSource(prop);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /*

    3. 提供 获得 连接池对象的方法

    */

    public static DataSource getDataSource(){

    return ds;

    }

    /*

    4. 提供 从连接池中 获取连接对象Connection的 方法

    */

    public static Connection getConnetion() throws SQLException {

    Connection conn = ds.getConnection();

    return conn;

    }

    }

    标签:java,配置文件,数据库,Druid,ds,static,public,连接池

    来源: https://blog.csdn.net/qq754772661/article/details/111384030

    展开全文
  • Java数据库连接池

    2021-01-27 01:21:47
    一、关于数据库连接池一个普通的java程序,要查询数据库的数据,基本流程是这样的:查询数据基本流程.jpg可以看到,进行一次查询,要进行很多次网络交互,这样的缺点是:网络IO多;响应时间长,导致QPS降低;频繁...
  • Tomcat数据库连接池配置前言:1准备mysql的jdbc驱动程序2安装Tomcat默认全部装在D:\Server\tomcat5.0 D:\Server\tomcat5.5 D:\Server\tomcat6.03以TOMCAT_HOME代替个版本的安装目录4将jdbc驱动放入TOMCAT_HOME\ ...
  • mybatis数据库连接池配置

    千次阅读 2021-01-19 09:23:06
    mybatis学习笔记之学习目录(1)mybatis学习笔记之学习结构(1)学习结构:1.mybatis开发方法原始dao开发方法(程序需要编写dao接口和dao实现类)mybatis的mapper接口(相当于dao接口)代理开发方法mybatis配置文件...
  • java配置数据库连接池

    2021-03-04 01:58:09
    先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库...
  • Java数据库连接池(三)连接池监控工具前两篇博文阐述了连接池都有一些共性的地方,其结构大致相同,都具备几个概念,DataSource,Connection,ProxyConnection,Pool,PooledDataSource,PhysicalConnection、...
  • Java数据库连接池学习

    2021-03-06 21:22:00
    数据库连接池的原理是:连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户...
  • 分类: Java2006-03-28 16:06:36用连接池提高Servlet访问数据库的效率(1)Java Servlet作为首选的...本文介绍一种充分发挥该特色的实用技术,即数据库连接池。一、实现连接池的意义动态Web站点往往用数据库存储的...
  • 三种数据库连接池配置

    千次阅读 2021-01-18 22:17:29
    三种数据库连接池配置及使用(For JDBC)连接池的优缺点优点使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,而且这个过程通常是...
  • 如何确保连接池中的最小连接数呢?有动态和静态两种策略...连接池的实现1、连接池模型本文讨论的连接池包括一个连接池类(DBConnectionPool)和一个连接池管理类(DBConnetionPoolManager)和一个配置文件操作类(ParseD...
  • java通过数据库连接池链接oracle 开发工具:Eclipse J2EE 3.6 运行环境:jdk1.6 部署环境:Tomcat7 数据库连接池用的是dbcp,网上download下来的三个jar包. 把数据库连接池包和jdbc的包放到t ... Myeclipse WEB工程JSP...
  • Java中的数据库连接池

    2021-02-13 00:01:58
    简单来说,连接池本质上就是数据库连接缓存的一种实现方式,可以通过对其进行配置来满足特定的需求。本文中,我们会简要介绍一些流行的连接池框架,之后也会讨论如何从零开始实现一个连接池。为何使用连接池关于这个...
  • Java 数据库连接池详解数据库连接池的原理是:连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接...
  • 线程池 相关配置,不仅平时经常用到,而且面试也会经常问到。如何设置线程池大小?CPU 密集型任务:这种任务消耗的主要是 CPU 资源,可以将线程数设置为 N(CPU 核心数)+1,比 CPU 核心数多出来的一个线程是为了防止...
  • 本节内容数据库连接池Spring JDBC : JDBC Template数据库连接池1.概念:其实就是一个容器(集合),存放数据库连接的容器当系统初始化好后,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,...
  • 使用Java代码配置数据库连接池,并可以在处理器中注入并使用 目标:可以使用@Value获取配置文件配置项并结合@Bean注册组件到Spring 分析: 需求:使用Java代码配置数据库连接池,并可以在处理器中注入并使用 步骤: ...
  • 这篇文章主要为大家详细介绍了数据库连接池c3p0配置的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下c3p0的配置方式分为三种,分别是1.setters一个个地设置各个配置项2.类路径下提供一个c3p0....
  • 而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到数据库服务器,这样就节省了时间。缺点数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源...
  • 问题的设置是基于一个Web服务(Spring /Java,...要优化数据库连接使用情况,数据库连接池的实现会很好,对吧?使用Java / Spring:如何为动态数据库创建连接池?我在这里缺乏干净的选择有点儿震撼!>使用通用的MySql...
  • import com.qf.sparkproject.sessionanalyze.conf.ConfigurationManager;import ...import java.sql.Connection;import java.sql.DriverManager;import java.sq...
  • 数据库连接池:负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接...
  • TomCat 6.0 实测配置连接,其它数据库同理配置(WebLogic 后续实测)Tomcat /conf/Context.xml 下配置连接信息。maxActive="100" maxIdle="30" maxWait="10000" username="jgbs" password="jgbs"driverClassName=...
  • 本文主要针对c3p0、dbcp、druid、hikariCP主流数据库连接池,进行参数配置信息梳理。 基础的参数配置: name:连接池用户自定义名称(经测试c3p0无该属性,hikariCP为poolname) driverClass : 数据库驱动(比如...
  • 只需要在项目中导入相关jar包即可,导入相关包时,需要注意,包的版本的及依赖包的版本com.mchangec3p00.9.5.4mysqlmysql-connector-java5.1.6即可进行简单的数据库操作ComboPooledDataSource cpds = new ...
  • Java线程池和数据库连接池就是典型的应用,但并非所有的对象都适合拿来池化,对于创建开销比较小的对象拿来池化反而会影响性能,因为维护对象池也需要一定的资源开销,对于创建开销较大,又频繁创建使用的对象,采用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,669
精华内容 42,667
关键字:

java数据库连接池配置参数

java 订阅