一:一个服务在操作数据库的操作的时候,连接和关闭资源是很消耗系统的资源,不能再每次用户操作数据库的时候,都需要重新建立连接和 关闭连接。

如果这样操作的话,对系统和用户来说,都会消耗大量的资源。所以操作数据库的时候,使用数据库连接池,在服务启动的时候,需要初始化连接,在用户调用的时候,会分配一个连接,用户使用完之后,会归还连接池。

这样就会避免减少系统开销和提升用户的体验。

现在一般使用连接池技术是Apache的dbcp技术。

工具类:

 package pool_demo;

 import org.apache.commons.dbcp2.BasicDataSource;

 import javax.sql.DataSource;//注意的是扩展的javax 里的DataSource。

 public class Jdbcutils {
private static BasicDataSource datasour=new BasicDataSource();
static {
datasour.setDriverClassName("com.mysql.jdbc.Driver");
datasour.setUrl("jdbc:mysql://192.168.147.146:3306/homework_day13");
datasour.setUsername("test");
datasour.setPassword("");
datasour.setInitialSize();//初始化数据库连接数。
datasour.setMaxTotal();//最大连接数 需要注意在dbcp2.0的时候没有Maxactive 已经被替换setMaxTotal
datasour.setMinIdle();//最小空闲连接数。
datasour.setMaxIdle();//最大空闲连接数。 }
static DataSource get_Datasource(){
return datasour;
}
}

测试代码:

 package pool_demo;

 import org.apache.commons.dbutils.QueryRunner;

 import org.apache.commons.dbutils.handlers.ArrayListHandler;

 import java.sql.SQLException;
import java.util.List; public class pool_test {
public static void main(String ... args){
db_Con.db_test();
}
}
class db_Con{
public static void db_test(){
List<Object[]> rest;
try {
QueryRunner qr =new QueryRunner(Jdbcutils.get_Datasource());
rest= qr.query("select * from system_user",new ArrayListHandler()); }catch (SQLException ex){
ex.printStackTrace( );//打印异常输出。
throw new RuntimeException("连接错误"+ex);//这样也可以打印。错误信息比较简明。
}
for (Object[] obj:rest){for (Object i:obj){System.out.print(i);} }
}
}

JDBC连接池使用的更多相关文章

  1. 四大流行的jdbc连接池之C3P0篇

    C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSourc ...

  2. Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介

    日常啰嗦 终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和da ...

  3. JDBC连接池-C池3P0连接

    JDBC连接池-C3P0连接 c3p0连接池的学习英语好的看英文原版      c3p0 - JDBC3 Connection and Statement Pooling 使用c3p0连接池  三种方 ...

  4. JDBC连接池(三)DBCP连接池

    JDBC连接池(三)DBCP连接池 在前面的随笔中提到 了  1.JDBC自定义连接池  2. C3P0连接池 今天将介绍DBCP连接池 第一步要导入jar包   (注意:mysql和mysql 驱动 ...

  5. JDBC连接池-自定义连接池

    JDBC连接池 java JDBC连接中用到Connection   在每次对数据进行增删查改 都要 开启  .关闭  ,在实例开发项目中 ,浪费了很大的资源 ,以下是之前连接JDBC的案例 pack ...

  6. Jmeter(九)JDBC连接池

    JDBC为java访问数据库提供通用的API,可以为多种关系数据库提供统一访问.因为SQL是关系式数据库管理系统的标准语言,只要我们遵循SQL规范,那么我们写的代码既可以访问MySQL又可以访问SQL ...

  7. jdbc连接池&改进dbUtil成C3P0Util

    一.jdbc连接池 1.连接池的存在理由   前面介绍的dbUtils工具类虽然实现了一个对jdbc的简单封装.但它依旧采取从驱动管理获取连接 (DriverManager.getConnection ...

  8. Tomcat 的 JDBC 连接池

    JDBC 连接池 org.apache.tomcat.jdbc.pool 是 Apache Commons DBCP 连接池的一种替换或备选方案. 那究竟为何需要一个新的连接池? 原因如下: Comm ...

  9. 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)

    -----------------------JDBC---------- 0.      db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...

  10. spring boot(10)-tomcat jdbc连接池

    默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多.spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了 ...

随机推荐

  1. MySql基本学习知识点:

    1.Mysql的简介: (1):常识: MySQL是一种关系数据库管理系统,是一种开源软件 由瑞典MySQL AB公司开发,2008年1月16号被Sun公司收购.2009年,SUN又被Oracle收购 ...

  2. HTML5之全局属性 (声明:内容节选自《HTML 5从入门到精通》)

    contentEditable ———————————————————————————————————————————————————————— 功能:允许用户编辑元素中的内容. 功能说明:      ...

  3. Spring Boot fastJSON的使用

    springBoot,默认使用的json解析框架是Jackson. 虽然jackson能够满足json的解析,如果想使用熟悉的alibaba的fastjon,我们只需要在pom文件中配置maven依赖 ...

  4. html打造动画【系列2】- 可爱的蛙蛙表情

    先感受一下全部表情包: 在开始之前先安利一个知识点:Flex弹性布局 我们一般做水平三列布局都是用的float方法,将每一块浮动显示在同一行.这种方法会导致元素没有原来的高度属性,要用清除浮动来解决空 ...

  5. 1000! mod 10^250

    1000! mod 10^250  =============== the answer is 2 ================ Hi I'm trying to solve the above ...

  6. 【Android】RxJava的使用(二)Action

    回顾 在上一节Android RxJava的使用(一)基本用法中,介绍了RxJava的基本用法.下面来回顾下实现一次RxJava的基本使用.例:分别打印"Hellow"." ...

  7. Dialog向Activity传递数据

    PopupDialog中声明一个内部接口PriorityListener,接口中声明一个回调函数refreshPriorityUI,用于在 Dialog的监听事件触发后刷新Activity的UI显示. ...

  8. 2Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

    public class TestException { public static void main(String[] args) { String str = "1"; fo ...

  9. Object toString方法

    1.System.out.println()里的参数会自动调用toString方法. package com.mydemo.controller; // 1.getClass().getName() ...

  10. h5调用微信分享

    https://blog.csdn.net/qq_39562787/article/details/79217386