数据库相关概念讲解(java)
1.常用类或接口介绍
1.DataSource接口
通过javaAPI中javax.sql.DataSource接口注释了解。
1.DataSource功能
如下图:

翻译:
DataSource对象代表一个连接到物理数据源的工厂。在寻找DriverManager的替代方案时,发现DataSource是替代DriverManager获得连接的最好选择。实现DataSource接口的对象通常会注册到基于JNDI的命名服务当中。
了解JNDI请跳转至https://blog.csdn.net/wn084/article/details/80729230
2.DataSource接口实现

翻译:
DataSource接口由驱动提供商实现。有3种类型的实现:
《1》基本实现:提供一个标准java.sql.Connection对象
《2》连接池实现:提供一个java.sql.Connection对象,这个Connection对象自动被放到连接池中。此实现与中间层连接池管理器一起工作。
《3》分布式事务实现:提供一个java.sql.Connection对象,该对象可用于分布式事务,并且几乎总是参与连接池。此实现与中间层事务管理器一起工作,并且几乎总是与连接池管理器一起工作。
总结:
实现了DataSource接口的数据源有DBCP、C3P0、Druid、Proxool。
spring项目推荐使用DBCP;Hibernate 推荐使用c3p0和proxool。
每个数据源的特点介绍请跳转至https://blog.csdn.net/weixin_37377718/article/details/69666627###
3.DataSource相比DriverManager的优点

翻译:
DataSource对象具有可修改的属性必要时。例如,如果将数据源移动到其他服务器,则可以更改服务器的属性。这样做的好处是,因为可以更改数据源的属性,所以访问该数据源的任何代码都不需要更改。
4.DataSource实现原理

翻译:
通过DataSource对象访问的驱动程序不会向DriverManager注册自身。更确切地说,是DataSource通过查找操作检索对象然后用于创建Connection对象。对于基本实现,通过DataSource对象获得的连接与通过DriverManager工具获得的连接相同。
5.注意事项
实现DataSource接口时必须创建一个无参构造器。
DataSource接口只有两个方法:getConnection()与getConnection(String userName,String userPassword)
javax.sql.DataSource的功能就是获取连接。
2.DriverManager类
该类位于java.sql包。
下面通过源码注释了解一下DriverManager。
1.功能介绍

翻译:
DriverManager管理一组jdbc驱动程序的基本服务。注意:javax.sql.DataSource是新的JDBC2.0的API,提供了连接到数据源的其他方式。推荐使用DataSource连接到数据源。
总结:
DriverManager是比较早的用于获取数据库连接的类,而DataSource是用于替代DriverManager的。
2.DriverManager方法介绍
主要方法就是获取连接、注册驱动(不常用)。
3.Connection接口
该类位于java.sql包。
1.功能介绍

翻译:
Connection代表连接到了一个特定的数据库。通过Connection对象可以执行SQL语句并从数据库获得执行结果。
数据库相关概念讲解(java)的更多相关文章
- oracle数据库相关概念介绍
数据库相关概念介绍: 问题: 数据存储:变量(基本类型,引用类型) 基本类型:少量数据 引用类型:保证数据的完整性 数据源: 声明直接赋值 IO流从硬盘中读取 java在处理数据时,需要从硬盘中读取数 ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
- 使用递归算法结合数据库解析成java树形结构
使用递归算法结合数据库解析成java树形结构 1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHA ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- 第四节:详细讲解Java中的类和面向对象思想
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
- 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架
前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...
- 第七节:详细讲解Java中的日期,java.util.date
前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...
- 第六节:详细讲解Java中的装箱与拆箱及其字符串
前言 大家好,给大家带来详细讲解Java中的装箱与拆箱及其字符串的概述,希望你们喜欢 装箱与拆箱 封装类有:Byte , short , Integer , Character , long , Fl ...
随机推荐
- 10月清北学堂培训 Day 7
今天是黄致焕老师的讲授~ 历年真题选讲 NOIP 2012 开车旅行 小 A 和小 B 决定外出旅行,他们将想去的城市从 1 到 n 编号,且编号较小的城市在编号较大的城市的西边.记城市 i 的海拔高 ...
- hive on tez 错误记录
1.执行过程失败,报 Container killed on request. Exit code is 143 如下图: 分析:造成这种原因是由于总内存不多,而容器在jvm中占比过高,修改tez-s ...
- Qt学习大全
这边文章的目的是把自己之前写的关于Qt的文章整理归纳成一个Qt学习的专栏,会提供之前文章的导航,同时也会留一些坑待自己日后填. 1.Qt 元对象系统 2.Qt的信号和槽 3.Qt的插件开发 4.Qml ...
- 走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
谈谈 Tomcat 请求处理流程 转自:https://github.com/c-rainstorm/blog/blob/tomcat-request-process/reading-notes &l ...
- arcgis python 发送邮件
import arcgisscripting, smtplib, os, sys, traceback from email.MIMEMultipart import MIMEMultipart fr ...
- 如何在Windows Server 2008服务器中把Tomcat启动程序添加到服务中
转自:https://blog.51cto.com/zdytesting/2314093 tomcat所在的bin目录: 添加服务: service install service_name 移除服务 ...
- 转:android DownloadManager: java.lang.SecurityException: Invalid value for visibility: 2
1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...
- 004-nginx简介、安装配置【源码安装和mac安装】、基本使用
一.概述 1.1.Nginx是什么 Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器[常用]. 1.2.Nginx能干什么 Nginx能干的事情很多,这里简要罗列一些: 1:直接支 ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_03-方法授权-jwt令牌包含权限
修改认证服务的UserDetailServiceImpl类,下边的代码中 permissionList列表中存放了用户的权限, 并且将权限标识按照中间使用逗号分隔的语法组成一个字符串,最终提供给Spr ...
- OpenStack Magnum项目简介
1 项目简介 Magnum是OpenStack中一个提供容器集群部署的服务. Magnum是一个Pass层的OpenStack项目. Magnum使用Heat部署一个包含Docker和Kubernet ...