1、关于数据库连接池

连接池就是创建和管理一个连接缓冲池的技术,这些连接好被任意线程所使用,数据库连接池负责分配和管理、释放数据库连接,总而言之数据库连接池就是提高对数据库的操作性能。

数据库连接池:

(1)JNDI连接池:是早期Java名称目录接口,一种数据库连接池技术

(2)DBCP:通过JNDI调用

(3)Druid:由国内阿里巴巴开发的一种连接池技术,可提高sql语句的执行效率,性能好

(3)C3P0:是一个开放源代码的JDBC连接池

2、数据库连接池的使用(Druid为准)

(1)创建属性文件放到源代码文件夹下,可以任意后缀名结尾,这里推荐txt方便打开

基本配置:
driverClassName=com.mysql.jdbc.Driver //加载驱动类
url=jdbc:mysql://localhost:3306/test //数据库连接URL
username=root //数据库用户名
password= //数据库密码
initialSize= //初始化连接池个数
maxActive= //最大连接池个数

(2)创建自定义DBTools类

public class DBTools{
public static DataSource ds; //创建数据源文件
static{
Properties properties = new Properties(); //属性文件对象
try{
//加载属性文件
properties.load(DBTools.class.getResourceAsStream("/druid.txt"));
//把这个属性文件赋给ds
ds=DruidDataSourceFactory.createDataSource(properties);
}catch(Exception e){
e.printStatckTrace();
}
}
}

(3)创建公共Query对象实体类(整个数据库操作依赖QueryRunner)

public class BaseDao{
public QueryRunner query; //创建对象
public BaseDao(){ //谁调用我就使用
query=new QueryRunner(DBTools.ds);
}
}

3、DBUtils的使用

DBUtils:简单的说DBUtils就是封装了JDBC的代码,简化了dao层的操作,提高工作的效率

使用DBUtils

(1)导入jar包:mysql驱动、数据库连接池jar包、DBUtils工具jar包

(2)创建属性配置文件

(3)自定义DBTools工具类,方便连接

4、DBUtils的API

query(sql,ResultSetHander<T>rsh,Object ... params)    //查询操作,返回一个有关泛型的集合,可添加参数,也可没有

update(String sql,Object ... params)     //数据库增删改操作,参数为sql语句和任何类型的参数

常用方法介绍:

(1)BeanHandler:将查询的第一行数据封装到user对象

(2)BeanListHandler:将查询的每一行数据封装到user对象,然后存入到list集合中

使用:return query.query(sql,new BeanListHandler<Student>(Student.class));

注意:必须指明类名

(3)ScalarHandler:返回的Long类型,适用于对象聚合函数的查询,count,max,avg,min,sum

使用:

String sql = "select count(1) from student";

return query.query(sql,new ScalarHandler<Long>())

关于连接池和DBUtils的更多相关文章

  1. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  2. 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用

    1. C3P0概述 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 2. C3P ...

  3. JDBC连接池和DBUtils

    本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...

  4. day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)

    day18总结 今日思维导图: 今日内容 事务 连接池 ThreadLocal BaseServlet自定义Servlet父类(只要求会用,不要求会写) DBUtils à commons-dbuti ...

  5. 【转】【很全很新】C3P0 连接池和 DBUtils 配合事务使用总结

    [转]https://blog.csdn.net/guozhaohui628/article/details/84793028 很久没用原生连接池,最近想写个小功能,结果发现很多地方不太懂,然后网上搜 ...

  6. 我的学习之路_第二十一章_JDBC连接池

    JDBC连接池和DButils [DBCP连接池工具类] 使用读取配置文件的方式 DBCP中有一个工厂类 BasicDataSourceFactory 工厂类中有一个静态方法 返回值为: DataSo ...

  7. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

  8. 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils

    使用连接池改造JDBC的工具类: 1.1.1          需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...

  9. Java基础学习笔记二十七 DBUtils和连接池

    DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简化开发 ...

随机推荐

  1. php 的windows集成开发环境

    1.安装视频  https://www.bilibili.com/video/av10274152/?p=5 2.所需的安装包: https://pan.baidu.com/s/1GLnuzkKFIT ...

  2. 原生ajax 请求

    什么是ajax AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新. 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新, ...

  3. c和java中各种数据类型所占字节

      c java char 1 2 short 2 int 4 long 4 8 float 4 double 8

  4. Hibernate实体对象的生命周期(三种状态)

    瞬时状态(Transient) 通过new创建对象后,对象并没有立刻持久化,它并未与数据库中的数据有任何关联,此时Java对象的状态为瞬时状态. Session对于瞬时状态的Java对象是一无所知的, ...

  5. sh_01_九九乘法表

    sh_01_九九乘法表 def multiple_table(): # 1. 打印 9 行小星星 row = 1 while row <= 9: col = 1 while col <= ...

  6. Task的用法

    创建任务 无返回值的方式 方式1: var t1 = new Task(() => TaskMethod("Task 1")); t1.Start(); Task.WaitA ...

  7. CSV文件在Python中的几种处理方式

    Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型.在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文 ...

  8. 使用ThreadPoolTaskScheduler动态修改调度时间

    用SchedulingConfigurer接口只能统一修改,要分开控制的话有多少个job就要有多少个实现.比较麻烦 配置线程池ThreadPoolTaskScheduler @Configuratio ...

  9. Luogu P5469 [NOI2019]机器人 (DP、多项式)

    不用FFT的多项式(大雾) 题目链接: https://www.luogu.org/problemnew/show/P5469 (这题在洛谷都成绿题了海星) 题解: 首先我们考虑,一个序列位置最右边的 ...

  10. Oracle数据库表空间查看和更改

    set linesize 200  --设置输出一行字符个数为200 1.查看表空间名称和大小(单位MB) SELECT t.tablespace_name, round(SUM(bytes / (1 ...