配置数据源
Spring Data JPA 能灵活操纵数据,但是在那之前,你需要告诉它能找到数据的地方
application.yaml
application-dev-h2.yaml
h2 数据库只要引入了依赖就会自动启用,我们只需要配置数据源进行连接就可以了。由于是随 Java 一同启动(同一进程),url 处填写的链接是 mem
来代表内存,而不是 tcp://...
,这是需要注意的。同时,jdbc:h2:mem:test
最后的 test
代表使用的数据库。
spring.datasource.dirver-class-name
代表使用的驱动程序,填写如下即可。
spring.datasource.type
代表了使用的连接池技术,这里使用了 Alibaba Druid 替代了默认的 HikariCP。
spring.jpa.hibernate.ddl-auto
可以为我们自动建表。选项包括:
update
: 如果数据库中没有映射的表,就新建,如果已有,那么就在其基础上操作,适合生产环境。create
: 运行时新建(抹除之前的数据)。create-drop
: 运行时新建,运行完毕后销毁,适合测试环境。none
: disable DDL handling.validate
: 验证 schema,但不对数据库进行操作。
其中,ddl-auto
的 ddl
代表 Data Definition Language,指用于声明表、列、数据类型和约束的 SQL 的子集。
spring.jpa.show-sql
决定是否在控制台输出 JPA 执行的实际 SQL 语句。
application-dev-mysql.yaml
对于 MySQL,spring.datasource.driver-class-name
需要使用 com.mysql.cj.jdbc.Driver
。切勿使用 com.mysql.jdbc.Driver
,因为后者为已弃用的驱动。
另外,对于 MySQL 还要输入用户名密码。
application-prod.yaml
生产环境下,spring.jpa.hibernate.ddl-auto
设置为 update
。
如果不需要自动建表,希望使用自己的 SQL 文件初始化数据库,可以这样配置:
DDL 建表,DML 填充数据。
JDBC MySQL url parameters
对于中文环境:
jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&character_set_server=utf8mb4
从 MySQL 8.0.16 开始,MySQL 开始支持 TLS 1.3。从 MySQL 8.0.28 开始,TLS 1.0 和 TLS 1.1 不再受到支持。
最后更新于