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)的更多相关文章

  1. oracle数据库相关概念介绍

    数据库相关概念介绍: 问题: 数据存储:变量(基本类型,引用类型) 基本类型:少量数据 引用类型:保证数据的完整性 数据源: 声明直接赋值 IO流从硬盘中读取 java在处理数据时,需要从硬盘中读取数 ...

  2. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  3. 使用递归算法结合数据库解析成java树形结构

    使用递归算法结合数据库解析成java树形结构 1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHA ...

  4. 第五节:详细讲解Java中的接口与继承

    前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...

  5. 第四节:详细讲解Java中的类和面向对象思想

    前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...

  6. 第九节:详细讲解Java中的泛型,多线程,网络编程

    前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...

  7. 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架

    前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...

  8. 第七节:详细讲解Java中的日期,java.util.date

    前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...

  9. 第六节:详细讲解Java中的装箱与拆箱及其字符串

    前言 大家好,给大家带来详细讲解Java中的装箱与拆箱及其字符串的概述,希望你们喜欢 装箱与拆箱 封装类有:Byte , short , Integer , Character , long , Fl ...

随机推荐

  1. 开源是个巨大的坑,谁来帮帮我 - smartmontools 虐我记

    最近在试用smartmontools,感觉还行,于是乎想找来源码改改试试,这下可好,掉坑里了.呜呜呜... smartmontools的源码在这里可以看到:https://www.smartmonto ...

  2. LOJ2541. 「PKUWC2018」猎人杀 [概率,分治NTT]

    传送门 思路 好一个神仙题qwq 首先,发现由于一个人死之后分母会变,非常麻烦,考虑用某种方法定住分母. 我们稍微改一改游戏规则:一个人被打死时只打个标记,并不移走,也就是说可以被打多次但只算一次.容 ...

  3. 浅谈Min_25筛(一看就懂的那种)

    作用 前提:一个积性函数\(F(i)\),要求\(F(P^k),P\in prime\)可以快速计算 实现\(O(\frac{n^{\frac{3}{4}}}{logn})\):\(\sum\limi ...

  4. cas系列-cas登出(四)

    跟登陆一样,登出操作也很重要.由于是多应用间操作,状态保持也是一个要点,根据登出的影响范围,可以将登出操作分为两类: 单应用登出 单点登出(多应用登出) 顾名思义,单应用登出即登出只影响被操作的应用会 ...

  5. [TJOI2019]甲苯先生的字符串——矩阵乘法+递推

    题目链接: [TJOI2019]甲苯先生的字符串 我们用一个$26*26$的$01$矩阵记录任意两个字符是否能相邻. 设$f[i][j]$表示处理完前$i$个字符,第$i$个字符为$j$的方案数. 可 ...

  6. [TJOI2019]唱、跳、rap和篮球——NTT+生成函数+容斥

    题目链接: [TJOI2019]唱.跳.rap和篮球 直接求不好求,我们考虑容斥,求出至少有$i$个聚集区间的方案数$ans_{i}$,那么最终答案就是$\sum\limits_{i=0}^{n}(- ...

  7. Cookie 概述

    一.属性介绍 Name Cookie的key Value Cookie的value Domain 可以访问此Cookie的域名 Path 可以访问此Cookie的页面路径 Expires/Max-Ag ...

  8. github免费私有仓库使用

    本文链接:https://blog.csdn.net/subfate/article/details/86147645github仓库前不久开放了个人私有仓库(原来要收费),个人使用无数量限制.对于想 ...

  9. Android中为什么主线程不会因为Looper.loop()方法造成阻塞

    很多人都对Handler的机制有所了解,如果不是很熟悉的可以看看我 如果看过源码的人都知道,在处理消息的时候使用了Looper.loop()方法,并且在该方法中进入了一个死循环,同时Looper.lo ...

  10. mp4文件格式解析(转)

    mp4文件格式解析 MP4文件格式带数据详解 MP4文件格式的解析,以及MP4文件的分割算法