【Java EE】数据库连接池详解

文章目录

🎍数据库连接池

在上⾯Mybatis的讲解中,我们使⽤了数据库连接池技术,避免频繁的创建连接,销毁连接

下⾯我们来了解下数据库连接池

数据库连接池负责分配、管理和释放数据库连接,它允许应⽤程序重复使⽤⼀个现有的数据库连接,
⽽不是再重新建⽴⼀个.

没有使⽤数据库连接池的情况:每次执⾏SQL语句,要先创建⼀个新的连接对象,然后执⾏SQL语句,SQL语句执⾏完,再关闭连接对象释放资源.这种重复的创建连接,销毁连接⽐较消耗资源

使⽤数据库连接池的情况:程序启动时,会在数据库连接池中创建⼀定数量的Connection对象,当客⼾请求数据库连接池,会从数据库连接池中获取Connection对象,然后执⾏SQL,SQL语句执⾏完,再把Connection归还给连接池.

优点:

  1. 减少了⽹络开销
  2. 资源重⽤
  3. 提升了系统的性能

常⻅的数据库连接池:

• C3P0

• DBCP

• Druid

• Hikari

🌸Hikari

⽬前⽐较流⾏的是Hikari,Druid

  1. Hikari:SpringBoot默认使⽤的数据库连接池

🌸Druid

如果我们想把默认的数据库连接池切换为Druid数据库连接池,只需要引⼊相关依赖即可

css 复制代码
<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid-spring-boot-starter</artifactId>
 <version>1.1.17</version>
</dependency>

参考官⽅地址:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

• Druid连接池是阿⾥巴巴开源的数据库连接池项⽬

• 功能强⼤,性能优秀,是Java语⾔最好的数据库连接池之⼀

🍀MySQL开发企业规范

  1. 表名,字段名使⽤⼩写字⺟或数字,单词之间以下划线分割.尽量避免出现数字开头或者两个下划线中间只出现数字.数据库字段名的修改代价很⼤,所以字段名称需要慎重考虑。

MySQL在Windows下不区分⼤⼩写,但在Linux下默认是区分⼤⼩写.因此,数据库名,表名,字

段名都不允许出现任何⼤写字⺟,避免节外⽣枝

正例:aliyun_admin,rdc_config,level3_name

反例:AliyunAdmin,rdcConfig,level_3_name

  1. 表必备三字段:id,create_time,update_time

id必为主键,类型为bigintunsigned,单表时⾃增,步⻓为1

create_time,update_time的类型均为datetime类型,create_time表⽰创建时间,

update_time表⽰更新时间

有同等含义的字段即可,字段名不做强制要求

  1. 在表查询中,避免使⽤*作为查询的字段列表,标明需要哪些字段
  1. 增加查询分析器解析成本
  1. 增减字段容易与resultMap配置不⼀致
  2. ⽆⽤字段增加⽹络消耗,尤其是text类型的字段

⭕总结

感谢大家的阅读,希望得到大家的批评指正,和大家一起进步,与君共勉!

相关推荐
AI你一生一世5 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
云-缩影5 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
ss2736 小时前
为什么PostgreSQL适合AI场景?
数据库·人工智能·postgresql
瑞克-桑切斯6 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
z06.7 小时前
MySQL索引
数据库·mysql
考虑考虑7 小时前
Posrgresql恢复.backup文件
数据库·后端·postgresql
云祺vinchin7 小时前
中小企业备份软件选型从恢复需求到总体成本评估
数据库·数据备份·中小企业备份·容灾备份软件
Zenova EdgeOS7 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer7 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
字节跳动开源8 小时前
OpenViking 上线原生 3D 内容理解模型
数据库·开源