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. mysql分批导出数据和分批导入数据库

    mysql分批导出数据和分批导入数据库 由于某些原因,比如说测试环境有很多库,需要迁移到新的环境中,不需要导出系统库的数据.而数据库又有好多,如何才能将每个库导出到独立的文件中呢?导入到一个文件的话, ...

  2. Eigen 矩阵库学习笔记

    最近为了在C++中使用矩阵运算,简单学习了一下Eigen矩阵库.Eigen比Armadillo相对底层一点,但是只需要添加头文库即可使用,不使用额外的编译和安装过程. 基本定义 Matrix3f是3* ...

  3. chrome浏览器调试js,结果Sources里面找不到js文件解决办法

        页面出现问题,就debug,这是前端开发工程师最常见的做法,但是有时候,我们打开开发者工具,在sources查找js文件,却发现怎么也找不到,无法设置断点.但是文件在network选项卡里确实 ...

  4. SQL 行转列(列的值不规则的数目)

    --创建一个临时表用来存储数据 create table #tmp_SNValue_Table (FieldName nvarchar(20), [Value] nvarchar(max)) inse ...

  5. pd.read_csv参数解析

    对pd.read_csv参数做如下解释: pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', n ...

  6. Found duplicate classes/resources

    很可能是多个三方依赖重复了,依赖个插件,这个插件能查找出依赖关系, duplicate-finder-maven-plugin 使用命令显示 mvn dependency:tree [INFO] \- ...

  7. SQL Server阻塞blocking案例分析

    今天在性能测试过程中发现大量阻塞报警,检查whoisactive(https://github.com/amachanic/sp_whoisactive/)数据发现,阻塞blocking头部sessi ...

  8. 深入浅出mysql笔记---0、序

    深入浅出mysql笔记---0.序 一.总结 一句话总结: 心得:买书之前建议先找找电子书,纸质书太难带了 1.开源作用? 开源对mysql的发展至关重要 2.mysql在2002年就全面支持了事务, ...

  9. LeetCode_509.斐波那契数

    LeetCode-cn_509 509.斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) ...

  10. VC程序禁用提示框

    程序需要24小时不中断 如果错误提示了的话 runtime error 监控程序就不能重启 下面是网上找的 方便以后用到 http://blog.csdn.net/yuzhiyuxia/article ...