开源连接池_dbcp_c3p0_tomcat内置连接池

5.开源连接池_DBCP_C3P0

开源数据源:

DBCP:

导包:commons-dbcp-1.4.jar    commons-pool-1.5.6.jar

方式1:

BasicDataSource source = new BasicDataSource();

source.setDriverClassName("com.mysql.jdbc.Driver");

source.setUrl("jdbc:mysql:///day11");

source.setUsername("root");

source.setPassword("root");

方式2:

Properties prop = new Properties();

prop.load(new FileReader("dbcp.properties"));

BasicDataSourceFactory factory = new BasicDataSourceFactory();

DataSource source = factory.createDataSource(prop);

配置文件中:

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql:///day11

username=root

password=root

#<!-- 初始化连接 -->

initialSize=10

#最大连接数量

maxActive=50

#<!-- 最大空闲连接 -->

maxIdle=20

#<!-- 最小空闲连接 -->

minIdle=5

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->

maxWait=60000

C3P0数据源:c3p0-0.9.1.2.jar

方式1:

ComboPooledDataSource source = new ComboPooledDataSource();

source.setDriverClass("com.mysql.jdbc.Driver");

source.setJdbcUrl("jdbc:mysql:///day11");

source.setUser("root");

source.setPassword("root");

方式2:

ComboPooledDataSource source = new ComboPooledDataSource();

ComboPooledDataSource source = new ComboPooledDataSource(“aaa”);

在类加载目录下名称为c3p0-config.xml的配置文件中配置:

<c3p0-config>

<default-config>

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="jdbcUrl">jdbc:mysql:///day11</property>

<property name="user">root</property>

<property name="password">root</property>

</default-config>

<named-config name="aaa">

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="jdbcUrl">jdbc:mysql:///day12</property>

<property name="user">root</property>

<property name="password">root</property>

</named-config>

</c3p0-config>

6.开源连接池_tomcat内置连接池

tomcat内置的数据源(DBCP):

1.如何为tomcat配置数据源

1、tomcat/conf/context.xml文件中配置<Context>配置在这个位置的信息将会被所有的web应用所共享

2、tomcat/conf/[engin]/[Host]/context.xml文件中可以配置<Context>标签,这里配置的信息将会被这台虚拟主机中的所有web应用所共享

3.1 tomcat/conf/server.xml文件中的<Host>标签中配置<Context>标签,这是web应用的第一种配置方式,在这个标签中配置的信息将只对当前web应用起作用

3.2 tomcat/conf/[engin]/[Host]/自己创建一个.xml文件,在这个文件中使用<Context>标签配置一个web应用,这是web应用第二种配置方式,在这个<Context>标签中配置的信息将只会对当前web应用起作用

3.3 web应用还有第三种配置方式:将web应用直接放置到虚拟主机管理的目录.此时可以在web应用的META-INF文件夹下创建一个context.xml文件,在其中可以写<Context>标签进行配置,这种配置信息将只会对当前web应用起作用

web应用里面导入mysql驱动mysql-connector-java-5.0.8-bin.jar

最好把MySQL的包放入E:\Program-Files\apache-tomcat-6.0.36\lib

<Context>

<Resource name="mySource"

auth="Container"

type="javax.sql.DataSource"

username="root"

password="root"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql:///day11"

maxActive="8"

maxIdle="4"/>

</Context>

1.在程序中获取这个数据源

jndi是tomcat的组件之一

为JAVA应用程序提供命名和目录访问服务的API。例如,Tomcat服务器在启动时可以创建一个连接到某种数据库系统的数据源(DataSource)对象,并将该数据源(DataSource)对象绑定到JNDI环境中,以后在这个Tomcat服务器中运行的Servlet和JSP程序就可以从JNDI环境中查询出这个数据源(DataSource)对象进行使用,而不用关心数据源(DataSource)对象是如何创建出来的,这种方式极大地增强了系统的可维护性,当数据库系统的连接参数发生变更时,这只是Tomcat系统管理员一个人要关心的事情,而与所有的应用程序开发人员无关。

想要访问jndi就必须在Servlet中才能执行下列代码:

Context initCtx = new InitialContext();

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

DataSource source = jndi.lookUp("mySource");

启动加载servlet

web.xml

<servlet>

<servlet-name>DataSourceInitServlet</servlet-name>

<servlet-class>com.itheima.init.DataSourceInitServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

public void init() throws ServletException {

try{

Context initCtx = new InitialContext();

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

DataSource source = (DataSource) jndi.lookup("mySource");

Connection conn = source.getConnection();

PreparedStatement ps = conn.prepareStatement("select * from account");

ResultSet rs = ps.executeQuery();

while(rs.next()){

String name = rs.getString("name");

System.out.println(name);

}

rs.close();

ps.close();

conn.close();

}catch (Exception e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

}

时间: 2024-08-07 16:42:17

开源连接池_dbcp_c3p0_tomcat内置连接池的相关文章

Java第三方数据库连接池库-DBCP-C3P0-Tomcat内置连接池

连接池原理 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去.我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接. 现在流行的第三方Java数据库连接池库 DBCP 它是Apache推出的Database Connection Pool,属于Apache Commons开源项目,官网:http://commons.apache.org/components.html.Co

使用Unidac内置连接池

第一步: 放一个TUniconnection并设置相关属性 之后直接使用TUniconnection对象即可 跟踪unidac源码uni单元1540行中可以看到 Connect方法调用CreateIConnection procedure TUniConnection.CreateIConnection; var Connection: TCRConnection; ConnectionParameters: TCRConnectionParameters; procedure SetSpeci

数据库连接池--Tomcat内置实现

1.JNDI(Java Naming and Directory Interface,Java命名和目录接口) 是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象.目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性.可以理解为一个容器,可以在其中存放任意内容,在容器中为内容提供一个字符串名称,名称命名方式采用是目录结构方式,在其他地方引用该名称就可以得到该内容. 2.实现 思想:将数据库连接池作为服务器端的资源存放在JNDI容器

连接greenvpn 公司内网连接

查看计算机路由表 Route print 跟踪路由表 Tracert ip or dnsname 本次需求,连接greenvpn之后,公司10.130.41.** 网段的机器无法使用.本机ip 10.130.73.1 简单解释下上图: 网络目标: 目标地址的网路段,需要跟网络掩码来确定.网络掩码:255.255.255.0 网关: 如果目标计算机的 IP 地址与“网络掩码”做与(AND)运算后结果等于“网络目标”的话,就会将数据包发送到“网关”所示的 IP 地址. 如果显示的是“在链路上”(on

mysql数据库编程,内置函数,存储过程(循环插入)

mysql编程注释:行:# 或者 -- 定义变量set 变量名 =变量名注意:为了区分系统变量和字段 在加一个@标识符例如   set @who ='韩当'; 使用select 可以获得当前变量的值 select 10,15,20 into @a,@b,@c; 注意:=应该是赋值,但是在select语句内,就成了关系等于,使用专门的赋值运算符:=同样使用与set 1.作用域, 用户定义的函数,是全局的(函数内可以),村子局部作用域变量,函数内定义的变量2.有效期,回话结束(连接结束) 内置函数

解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。

解决Mysql连接池被关闭  ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会失去链接,导致访问失败.因此稳定解决办法是把hibernate默认的连接池换成c3p0链接池. 在Hibernate(spring管理)中的配置:<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledData

连接池技术解密,连接池对我们不再陌生

一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解决方案:数据库连接池(Connection Pool).系统初始运行时,主动建立足够的连接,组成一个池.每次应用应用程序请求数据库连接时,无需重新打开连接,而是从池中取出已有的连接,使用完后,不再关闭,而是归还. 二.连接池主要由三部分组成:连接池的建立.连接池中连接的使用管理.连接池的关闭. 三.

javaWeb_JDBC_数据库连接池概述以及dbcp连接池

JDBC_dbcp数据库连接池 1.数据库连接池概述 (1).传统的数据库操作 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码( 得花费0.05s-1s的时间).需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接.这样的方式将会消耗大量的资源和时间. 数据库的连接资源并没有得到很好的重复利用.若同时有几百人甚至几千人在线,频繁的进行数据库连接操作将占用很多的系统资源,严重的 甚

(转)WebSphere 中池资源调优 - 线程池、连接池和 ORB

WebSphere 中池资源调优 - 线程池.连接池和 ORB 来自:https://www.ibm.com/developerworks/cn/websphere/library/techarticles/1106_zhuxl_websphereenhancement/1106_zhuxl_websphereenhancement.html IBM WebSphere Application Server (以下简称 WAS)能支持的应用程序越来越多,而这些应用程序有各自的独特特性.需求和服务