「java连接池实例」java数据连接池工作机制

博主:adminadmin 2023-01-11 00:33:06 1062

本篇文章给大家谈谈java连接池实例,以及java数据连接池工作机制对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java数据库连接池的几种配置方法(以MySQL数

连接先建立一些连接,并且这些连接允许共享,因此这样就节省了每次连接的时间开销。Mysql数据库为例,连接池在Tomcat中的配置与使用。

1、创建数据库Student,表student

2、配置server.xml文件。Tomcat安装目录下conf中server.xml文件。

GlobalNamingResources

Resource

name="jdbc/DBPool"

type="javax.sql.DataSource"

password=""

driverClassName="com.mysql.jdbc.Driver"

maxIdle="2"

maxWait="5000"

username="root"

url="jdbc:mysql://localhost:3306/student"

maxActive="3"

/

/GlobalNamingResources

name:指定连接池的名称

type:指定连接池的类,他负责连接池的事务处理

url:指定要连接的数据库

driverClassName:指定连接数据库使用的驱动程序

username:数据库用户名

password:数据库密码

maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常

maxIdle:指定连接池中连接的最大空闲数

maxActive:指定连接池最大连接数

3、配置web.xml文件。

web-app

resource-ref

descriptionmysql数据库连接池配置/description

res-ref-namejdbc/DBPool/res-ref-name

res-typejavax.sql.DataSource/res-type

res-authContainer/res-auth

res-sharing-scopeShareable/res-sharing-scope

/resource-ref

/web-app

4、配置context.xml文件

与server.xml文件所在的位置相同。

Context

ResourceLink

name="jdbc/DBPool"

type="javax.sql.DataSource"

global="jdbc/DBPool"

/

/Context

5、测试

DataSource pool = null;

Context env = null;

Connection conn = null;

Statement st = null;

ResultSet rs = null;

try{

env = (Context)new InitialContext().lookup("java:comp/env");

//检索指定的对象,返回此上下文的一个新实例

pool = (DataSource)env.lookup("jdbc/DBPool");

//获得数据库连接池

if(pool==null){out.printl("找不到指定的连接池!");}

con = pool.getConnection();

st = con.createStatement();

rs = st.executeQuery("select * from student");

}catch(Exception ex){out.printl(ne.toString());}

怎么在JAVA中创建一个数据库连接池?求实例代码

用c3po来创建数据库连接池,

1.到网络上下载c3p0-0.9.0.4.jar包,导入工程;(注意以下方法只能用于web服务).

2.找出web服务器中conf目录下的centent.xml,在里面加上以下配置

Resource auth="Container"

description="DB Connection"

driverClass="com.mysql.jdbc.Driver"

maxPoolSize="4"

minPoolSize="2"

acquireIncrement="1"

name="jdbc/TestDB"

user="root"

password="root"

factory="org.apache.naming.factory.BeanFactory"

type="com.mchange.v2.c3p0.ComboPooledDataSource"

jdbcUrl="jdbc:mysql://localhost:3306/自己的数据库名?autoReconnect=true" /

3.java获取连接池的代码;

import java.sql.Connection;

import java.sql.SQLException;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

public class DBUtils {

static InitialContext ic;

static DataSource ds;

static{

try {

ic = new InitialContext();

ds = (DataSource)ic.lookup("java:comp/env/jdbc/TestDB");

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static Connection getCon() {

try {

return ds.getConnection();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

}

}

}

通过以上代码,即可获取连接池中的连接.

java配置连接池时不能得到一个DataSource实例,高手请进!

javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/news");

把这句分开写看看。

Context ic = new InitialContext();

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

DataSource ds = (DataSource) env.lookup("jdbc/news");

几个主流的Java连接池有哪些?

现在常用的开源数据库连接池主要有c3p0、dbcp、proxool三种,其中:\x0d\x0aSpring 推荐使用dbcp;\x0d\x0aHibernate 推荐使用c3p0和proxool; \x0d\x0a1、 DBCP:Apache\x0d\x0aDBCP(DataBase connection pool)数据库连接池。是Apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。 \x0d\x0a2、 C3P0:\x0d\x0aC3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。 \x0d\x0a3、 Proxool:Sourceforge\x0d\x0aProxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。 \x0d\x0a对比:\x0d\x0a1 相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试参数(Average,median,90%Line)进行比较发现:性能dbcp 不同情况下的同一数据库连接池测试:通过观察 Average,median,90%Line三个参数发\x0d\x0a现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp=c3p0proxool。 \x0d\x0a结论: \x0d\x0a通过对三种数据库连接池的性能测试发现,proxool和 c3p0能够更好的支持高并发,但是在稳定性方面略逊于 dpcp;

关于java连接池实例和java数据连接池工作机制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。