背景
上次完成demo中一些环节碰到了问题,加上自己对一些东西的好奇,于是当时就写下了笔记和理解。这一篇补上自己的笔记。
问题笔记
1、在MySQL中表的列字段为什么使用下划线分割的命名方式?
- 可读性高
- 避免大小写敏感问题(mysql语法是不区分大小写的)
也可以参考《阿里巴巴开发手册》
2、application.yml配置文件中数据库的基础配置?
spring:
datasource:
url: jdbc:mysql://localhost:3306/my_blog_demo?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false
username: #你的用户名
password: #你的密码
driver-class-name: com.mysql.cj.jdbc.Driver
说明:
url:数据连接地址,格式为jdbc:mysql://主机地址(数据库服务器的IP地址):端口(数据库服务器的端口)/数据库名?参数
| 参数 | 含义 |
|---|---|
| serverTimezone=Asia/Shanghai | 表示服务器时区配置,这里指定为上海的时区(如果不指定可能存在数据库与java程序时间不一致情况) |
| useUnicode=true | 表示启用Unicode支持(不添加可能出现中文乱码问题) |
| characterEncoding=utf-8 | 表示指定客户端和数据库交互的字符编码(这里客户端是指我的Java程序)(如果不指定,可能存在存储值为中文的乱码问题) |
| useSSL=false | 关闭SSL加密 |
注意:要理解Unicode是一张码表,而utf-8是一种编码方式
driver-class-name:驱动类名,表示使用这个类来连接MySQL数据库
3、corn表达式的执行到底是怎么样的?
cron表达是“对齐系统时间刻度的”,可理解为在规定的周期时间内,每隔多久执行一次。而不是整个时间轴。来张图直观一下
(卧槽怎么是去年的图了)
说明:这里我设置每隔九秒执行一次,即使我在12:04:55开启服务器,它也只是在12:05:00分执行,中间间隔小于9秒,此后在一分钟内每隔9秒执行一次,到54秒时,判断距离60秒只有6秒钟,不足9秒,于是放在12:06:00执行。这就是cron表达式不是按现实时间轴执行,而是在规定的周期内执行的意思。
延伸:查询了解到fixedRate和fixedDelay两个属性。这两个就是按照一整个的时间轴进行下去的。参考:理解Spring定时任务@Scheduled的两个属性fixedRate和fixedDelay-CSDN博客
最后
声明:本文仅作为学习记录分享使用,内容基于作者当前技术认知整理,如需要参考请自行决定价值度,若有不准确或描述不清之处,欢迎评论区指正,我会在能力范围内修正完善,谢谢阅读!🙏