数据库相关概念讲解(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语句并从数据库获得执行结果。
最新文章
- Linux下面安装rpm包
- 理解PagerAdapter的instantiateItem()方法
- Excel应该这么玩——7、我是预言家:绘制趋势图
- 【web前端面试题整理01】各位加班累了吧,来做点前端面试题吧
- Android中各种Drawable总结
- Java关键字——transient
- Open vSwitch流表应用实战
- Windows完成端口网络模型
- Node.js 连接 MySQL 并进行数据库操作
- HTML的Get方法URL传递中文参数,解决乱码问题
- [USACO08JAN]haybale猜测Haybale Guessing
- 使设备I/O的核心模块工作,有哪两种方式?
- Spring AOP 切点(pointcut)表达式
- DevExpress 控件汉化代码和使用方法
- 微软BI 之SSIS 系列 - 数据仓库中实现 Slowly Changing Dimension 缓慢渐变维度的三种方式
- Lineage逻辑回归分类算法
- MongoDB学习路线
- 《算法》第四章部分程序 part 5
- VC++深入详解-第四章学习心得
- Java中的异常处理:何时抛出异常,何时捕获异常,何时处理异常?