Data Source与数据库连接池简介 JDBC简介(八)
起源
为何放弃DriverManager
//1、注册驱动 Class.forName("com.mysql.jdbc.Driver"); //数据库连接所需参数 String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/sampledb?useUnicode=true&characterEncoding=utf-8"; //2、获取连接对象 Connection conn = DriverManager.getConnection(url, user, password);
使用DriverManager的一般形式如上面代码所示
连接池
数据源
实现
核心架构
DataSource
- 基本实现 - 生成标准的 Connection 对象
- 连接池实现 - 生成自动参与连接池的 Connection 对象。此实现与中间层连接池管理器一起使用。
- 分布式事务实现 - 生成一个 Connection 对象,该对象可用于分布式事务,大多数情况下总是参与连接池。此实现与中间层事务管理器一起使用,大多数情况下总是与连接池管理器一起使用。
API
- Connection getConnection()
- Connection getConnection(String username, String password)
小结
应用
数据库连接池示例
package jdbc; import com.alibaba.druid.pool.DruidDataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.apache.commons.dbcp2.BasicDataSource; public class MyDataSource {public static void main(String[] args) throws Exception {String user = "root";String password = "123456";String url = "jdbc:mysql://localhost:3306/sampledb?useUnicode=true&characterEncoding=utf-8";//1.获取连接// Connection conn = getDHCPConnection(user,password,url);//Connection conn = getC3P0Connection(user,password,url);Connection conn = getDruidConnection(user, password, url);String sql = "select * from student limit 0,10";//2、获得sql语句执行对象Statement stmt = conn.createStatement();//3、执行并保存结果集ResultSet rs = stmt.executeQuery(sql);//4、处理结果集while (rs.next()) {System.out.print("id:" + rs.getInt(1));System.out.print(",姓名:" + rs.getString(2));System.out.print(",年龄:" + rs.getInt(3));System.out.println(",性别:" + rs.getString(4));}conn.close();stmt.close();rs.close(); } public static Connection getDruidConnection(String user, String password, String url) throws Exception {DruidDataSource ds = new DruidDataSource();ds.setUsername(user);ds.setPassword(password);ds.setUrl(url);ds.setDriverClassName("com.mysql.jdbc.Driver");return ds.getConnection();} public static Connection getC3P0Connection(String user, String password, String url) throws Exception {ComboPooledDataSource cpds = new ComboPooledDataSource();cpds.setUser(user);cpds.setPassword(password);cpds.setJdbcUrl(url);cpds.setDriverClass("com.mysql.jdbc.Driver");return cpds.getConnection();} public static Connection getDHCPConnection(String user, String password, String url) throws Exception {BasicDataSource dataSource = new BasicDataSource();dataSource.setUsername(user);dataSource.setPassword(password);dataSource.setUrl(url);dataSource.setDriverClassName("com.mysql.jdbc.Driver");Connection connection = dataSource.getConnection();return connection;} }
总结
转载于:https://www.cnblogs.com/noteless/p/10319296.html
Data Source与数据库连接池简介 JDBC简介(八)相关推荐
- DriverManager 驱动管理器类简介 JDBC简介(三)
驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中 后续的处理就可以对这个列表进行操作 简言之,驱动管理器,就是字面含义,主要负责就是管理 驱动 概述 ...
- JAVA 数据库连接池系列 —— HikariCP 简介
文章目录 一.HikariCP 的简介 二.HikariCP 默认配置 一.HikariCP 的简介 Github 名词解释 Hikari - Hi·ka·ri [hi·ka·'lē] (Origin ...
- tomcat7 mysql 连接池_Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是 dbcp存在一些问题: (1)dbcp 是单线程的,为了保证线程安全会锁整个连接池 (2)dbcp 性能不佳 ...
- jdbc如何使用oracle数据库连接池,使用JDBC连接池技术连接Oracle数据库
在使用JDBC连接数据库要用到两个jar包 1.编写配置文件 #驱动地址 driverClassName=oracle.jdbc.OracleDriver #连接地址 url=jdbc:oracle: ...
- JavaWeb:JDBC之数据库连接池
JDBC系列阅读 JavaWeb:用JDBC操作数据库 JavaWeb:JDBC之事务 JavaWeb:JDBC之数据库连接池 使用JDBC实现水果超市管理系统 1. 池参数(所有池参数都有默认值) ...
- JDBC核心技术六(数据库连接池)
系列笔记目录 JDBC核心技术一(概述) JDBC核心技术二(获取数据库连接) JDBC核心技术三(PreparedStatement) JDBC核心技术四(Blob字段和批量插入) JDBC核心技术 ...
- JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- Alibaba Druid 源码阅读(三) 数据库连接池初始化探索
Alibaba Druid 源码阅读(三) 数据库连接池初始化探索 简介 上文中探索了Alibaba Druid的连接池初始化和获取连接的关键代码,接下来详细看看初始化部分 数据库连接池初始化 对整个 ...
- java阿里数据库连接池_Java学习:数据库连接池技术
本节内容 数据库连接池 Spring JDBC : JDBC Template 数据库连接池 1.概念:其实就是一个容器(集合),存放数据库连接的容器 当系统初始化好后,容器中会申请一些连接对象,当用 ...
最新文章
- 启动项目时出现java.io.EOFException异常。
- 2022年美国大学生数学建模竞赛——Problem A:自行车手的功率剖面
- ifix如何设画面大小_ifix5.1环境下的ifix服务器、客户端配置
- python3 测试函数的一个例子
- ASP.NET 4 和 Visual Studio 2010 Web 开发概述
- python正十三边形_一起学python-opencv十三(直方图反向投影和模板匹配)
- centos6.5 rpm安装mysql_CentOS6.5系统下RPM包安装MySQL5.6(转)
- NBear.Mapping使用教程(5):实体对象与NameValueCollection,Dicitonary以及NBear.Mapping性能
- mysql的sererdata_MySQL_win2008 R2服务器下修改MySQL 5.5数据库data目录的方法,说明:
操作系统:Windows Server - phpStudy...
- Spark 云计算 ML 机器学习教程 以及 SPARK使用教程
- 一分钟搞定网页监控,实现网站链接百度自动推送
- 量子计算学习笔记:量子计算发展史
- 通过简单的温湿度传感器进行简单的物联网设计(一)传感器列表
- Codeforces1336A Linova and Kingdom (思维)
- 360随身wifi2驱动 v5.3.0.1035 官方版
- android如何释放图片缓存
- Android SlidingMenu 开源项目使用示例(一)
- 物流运交管理系统 货运单管理
- Google Earth Engine(GEE)——全球12级流域矢量数据免费下载(含数据下载链接)
- 大二期末作孽(SpringBoot+Vue前后端分离博客社区(重构White Hole))
热门文章
- SpringBoot指南(八)——SpringBoot整合Redis
- 机器学习-吴恩达-笔记-9-聚类
- 《废柴》系列 - What?废柴,你不会下载Google浏览器插件,Are you kidding???
- 【二十一】插件开发——用于验证码识别的 JMeter 插件(上)
- python没有return语句的函数将返回_为什么Python没有return返回值
- 学习python这门课的感受_关于我学习了编程小白的第一本Python入门书之后的感受 200110900207...
- 基于vue + element 的后台管理系统
- 解决Hadoop运行时的WARN util. NativeCodeLoader: Unable to load native-hadoop library for your platform
- sql用户名数据迁移到mysql_如何将SQL Server数据迁移到MySQL
- JSP如何获取Spring Boot的配置属性