关于连接池和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的简化开发 ...
随机推荐
- mysql分批导出数据和分批导入数据库
mysql分批导出数据和分批导入数据库 由于某些原因,比如说测试环境有很多库,需要迁移到新的环境中,不需要导出系统库的数据.而数据库又有好多,如何才能将每个库导出到独立的文件中呢?导入到一个文件的话, ...
- Eigen 矩阵库学习笔记
最近为了在C++中使用矩阵运算,简单学习了一下Eigen矩阵库.Eigen比Armadillo相对底层一点,但是只需要添加头文库即可使用,不使用额外的编译和安装过程. 基本定义 Matrix3f是3* ...
- chrome浏览器调试js,结果Sources里面找不到js文件解决办法
页面出现问题,就debug,这是前端开发工程师最常见的做法,但是有时候,我们打开开发者工具,在sources查找js文件,却发现怎么也找不到,无法设置断点.但是文件在network选项卡里确实 ...
- SQL 行转列(列的值不规则的数目)
--创建一个临时表用来存储数据 create table #tmp_SNValue_Table (FieldName nvarchar(20), [Value] nvarchar(max)) inse ...
- pd.read_csv参数解析
对pd.read_csv参数做如下解释: pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', n ...
- Found duplicate classes/resources
很可能是多个三方依赖重复了,依赖个插件,这个插件能查找出依赖关系, duplicate-finder-maven-plugin 使用命令显示 mvn dependency:tree [INFO] \- ...
- SQL Server阻塞blocking案例分析
今天在性能测试过程中发现大量阻塞报警,检查whoisactive(https://github.com/amachanic/sp_whoisactive/)数据发现,阻塞blocking头部sessi ...
- 深入浅出mysql笔记---0、序
深入浅出mysql笔记---0.序 一.总结 一句话总结: 心得:买书之前建议先找找电子书,纸质书太难带了 1.开源作用? 开源对mysql的发展至关重要 2.mysql在2002年就全面支持了事务, ...
- LeetCode_509.斐波那契数
LeetCode-cn_509 509.斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) ...
- VC程序禁用提示框
程序需要24小时不中断 如果错误提示了的话 runtime error 监控程序就不能重启 下面是网上找的 方便以后用到 http://blog.csdn.net/yuzhiyuxia/article ...