数据库相关概念讲解(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 ...
随机推荐
- 异步协程asyncio+aiohttp
aiohttp中文文档 1. 前言 在执行一些 IO 密集型任务的时候,程序常常会因为等待 IO 而阻塞.比如在网络爬虫中,如果我们使用 requests 库来进行请求的话,如果网站响应速度过慢,程序 ...
- CodeForces 787 题解
A题,因为数据范围很小,所以只要暴力即可,如果能相遇一定范围不大,如果范围很大还没相遇一定是不会相遇的了.正解应当是用扩展欧几里得计算这个方程的整数解,再想办法看看有没有正整数解才是. B题,只要看懂 ...
- 查询sqlserver中所有的数据库表 与 查询表中的说明注释字段
1.查询数据库中所有的数据库表 SELECT * FROM sysobjects WHERE xtype = 'u' AND name != 'sysdiagrams'; 2.查询数据库表中的说明字段 ...
- NOIP2014提高组 题解报告
D1 T1 无线网路发射器选址 题目大意:找一个矩形,使其覆盖的目标点最大. 题目过水,直接暴力搞过去,代码就不贴了. 但我TM居然有个地方SB了,调了半天才发现输入有问题: scanf(" ...
- Qt的插件开发
写代码都是从不会到会,那么写博客也是同样的道理.从不会到会最实用的办法就是模仿了.关于Qt的知识很多都是学习了CSDN的一位大神 一去二三里.关于Qt插件的开发,我们也从他的文章里面抽丝剥茧,把最本质 ...
- Linux fdisk命令创建扩展分区过程
[root@localhost ~]# fdisk /dev/sdb …省略部分输出… Command (m for help): n #新建立分区 Command action e extended ...
- Windows008 snmp
- 流式数据处理在百度数据工厂的应用与实践 原创: 李俊卿 AI前线 今天
流式数据处理在百度数据工厂的应用与实践 原创: 李俊卿 AI前线 今天
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_01-用户认证需求分析
1.1 用户认证与授权 截至目前,项目已经完成了在线学习功能,用户通过在线学习页面点播视频进行学习.如何去记录学生的学习过程 呢?要想掌握学生的学习情况就需要知道用户的身份信息,记录哪个用户在什么时间 ...
- java从包package中获取所有的Class
1.从包package中获取所有的Class方法: /** * 从包package中获取所有的Class * @param pack * @return */ public static List ...