关于连接池和DBUtils
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的更多相关文章
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...
- 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用
1. C3P0概述 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. 2. C3P ...
- JDBC连接池和DBUtils
本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...
- day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)
day18总结 今日思维导图: 今日内容 事务 连接池 ThreadLocal BaseServlet自定义Servlet父类(只要求会用,不要求会写) DBUtils à commons-dbuti ...
- 【转】【很全很新】C3P0 连接池和 DBUtils 配合事务使用总结
[转]https://blog.csdn.net/guozhaohui628/article/details/84793028 很久没用原生连接池,最近想写个小功能,结果发现很多地方不太懂,然后网上搜 ...
- 我的学习之路_第二十一章_JDBC连接池
JDBC连接池和DButils [DBCP连接池工具类] 使用读取配置文件的方式 DBCP中有一个工厂类 BasicDataSourceFactory 工厂类中有一个静态方法 返回值为: DataSo ...
- JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作
1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...
- 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils
使用连接池改造JDBC的工具类: 1.1.1 需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...
- Java基础学习笔记二十七 DBUtils和连接池
DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简化开发 ...
随机推荐
- 机器学习降维--lu分解
- Git远程新建分支之后,本地看不到最新分支
git remote update origin –prune 注意 双- csdn 对于 两个 - 看起来像一个
- 两句话掌握 Python 最难知识点——元类
千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...
- Linux入门培训教程 linux下拷贝cp删除rm移动mv命令参数以及说明
拷贝移动删除在windows中看起来这么简单,但linux经常使用的文字界面,所以对于linux系统 下拷贝cp删除 rm 移动mv命令参数就不得不需要了解和学习了 cp 该命令的功能是将给出的文件或 ...
- 字符串:StringBuilder()
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) [1]String和StringBuffer String ...
- 【bzoj1026】[SCOI2009]windy数
*题目描述: windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? *输入: 包含 ...
- mac osx终端批量删除文件
sudo su cd / find ./ -name "*.html" -exec rm -rf {} \; 注意 {}和\;之间有空格 find [目录名] -name &qu ...
- 简单实现骨架屏 (Skeleton Screens)
近年,国内外各大网站都引入骨架屏(Skeleton Screens)技术来提高用户体验.相比于之前的Loading动画,骨架屏页面更容易让用户产生一种错觉,页面快加载完了.骨架屏实现原理很 ...
- fedora从22开始就用dnf代替yum了
yum有一些不好的缺点, 从fc22开始, 就用 dnf代替yum了 dnf: "毒奶粉" yum: "黄狗" dnf的用法根yum的用法完全一样, 只是用dn ...
- Html/CSS 初步介绍html和css部分重要标签
&初步介绍html和css部分重要标签& 注:开头书写:<!DOCTYPE html>表明对应标准html代码 先行总结重点 下方给出具体 CSS: 1. position ...