【JavaEE进阶】数据库连接池
目录
🌴数据库连接池
🎋数据库连接池的使用
🌲MySQL企业开发规范
🌴数据库连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应⽤程序重复使⽤⼀个现有的数据库连接,⽽不是再重新建⽴⼀个.
没有使用数据库连接池的情况:每次执⾏SQL语句,要先创建⼀个新的连接对象,然后执⾏SQL语句,SQL语句执⾏完,再关闭连接对象释放资源.这种重复的创建连接,销毁连接⽐较消耗资源
使⽤数据库连接池的情况:程序启动时,会在数据库连接池中创建⼀定数量的Connection对象,当客⼾请求数据库连接池,会从数据库连接池中获取Connection对象,然后执⾏SQL,SQL语句执⾏完,再把Connection归还给连接池.
数据库连接池优点:
- 减少了⽹络开销
- 资源重⽤
- 提升了系统的性能
🎋数据库连接池的使用
常⻅的数据库连接池:
- C3P0
- DBCP
- Druid
- Hikari
⽬前⽐较流⾏的是Hikari,Druid
- 1. Hikari : SpringBoot默认使⽤的数据库连接池
Hikari 是⽇语"光"的意思(ひかり),Hikari也是以追求性能极致为⽬标
- 2. Druid
如果我们想把默认的数据库连接池切换为Druid数据库连接池,只需要引⼊相关依赖即可
如果SpringBoot版本为2.X,使⽤druid-spring-boot-starter依赖
运行结果:
参考官⽅地址:druid/druid-spring-boot-starter at master · alibaba/druid · GitHub
- Druid连接池是阿⾥巴巴开源的数据库连接池项⽬
- 功能强⼤,性能优秀,是Java语⾔最好的数据库连接池之⼀
学习⽂档:首页 · alibaba/druid Wiki · GitHub
🌲MySQL企业开发规范
1. 表名,字段名使⽤⼩写字⺟或数字,单词之间以下划线分割.尽量避免出现数字开头或者两个下划线 中间只出现数字.数据库字段名的修改代价很⼤,所以字段名称需要慎重考虑。
MySQL在Windows下不区分⼤⼩写,但在Linux下默认是区分⼤⼩写.因此, 数据库名,表名,字 段名都不允许出现任何⼤写字⺟,避免节外⽣枝
正例:aliyun_admin,rdc_config,level3_name
反例:AliyunAdmin,rdcConfig,level_3_name
2. 表必备三字段:id,create_time,update_time
id 必为主键, 类型为bigintunsigned, 单表时⾃增, 步⻓为1
create_time, update_time 的类型均为datetime类型,create_time表⽰创建时间,update_time表⽰更新时间
有同等含义的字段即可,字段名不做强制要求
3. 在表查询中, 避免使⽤*作为查询的字段列表,标明需要哪些字段(文章中上演⽰的除外).
- 1. 增加查询分析器解析成本
- 2. 增减字段容易与resultMap配置不⼀致
- 3. ⽆⽤字段增加⽹络消耗,尤其是text类型的字段