数据库方言和数据库连接池是什么
Posted MasterYe随记本
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库方言和数据库连接池是什么相关的知识,希望对你有一定的参考价值。
1、数据库方言
先说数据库方言,虽然说不同的数据库都声称支持标准的SQL语句,但是每个数据库多多少少对SQL语言进行了扩展。比如说:
SELECT xx FROM xxx LIMIT 1
mysql数据库和Oracle支持limit语句,然而一些其它的数据库并不支持,并且标准的SQL语句也不支持它,标准的方法如下:
SET ROWCOUNT 1
SELECT xx FROM xxx
这些扩展的SQL语句也就被称之为数据库方言。
为了支持数据库方言的使用,我们在设置ORM工具时需要指定数据库方言,比如hibernate的配置中就对数据库方言进行了说明:
当然hibernate支持的方言很多,部分例子如下图:
有人会问,在hibernate中可不可以不设置dialect,目前看来是必须要设置,否则会报错No DatabaseDialectMapper known for database。
2、数据库连接池
数据库连接池是一个管理数据库连接的资源池,它能预先创建好一定数量的数据库连接数。它能够对数据库连接进行申请、使用和释放操作,就像是线程池一样。
数据库连接池最大作用就是预先创建好数据库连接。那么,是不是一定需要它呢?答案是否定的,可以在每次需要操作数据库时进行连接,但是这么做的最大缺点就是慢,因为每次建立连接都需要很大的耗时,夸张的说会有0.5-1s的延时。这时候数据库连接池就非常有用了,因为每次它能给你一个准备好的连接供使用,不需要耗费时间进行连接。
常见的数据库连接池包括druid、c3p0、dbcp等。以druid为例,它的配置项如下:
如何使用数据库连接池呢,上述配置被spring加载后就会创建一个名为dataSource的对象,以某个删除数据库的方法为例,只需要getConnection即可获取到连接:
以上是关于数据库方言和数据库连接池是什么的主要内容,如果未能解决你的问题,请参考以下文章