添加依赖
- jpa用于连接增删改数据库的
1 2 3 4
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
|
- mysql连接驱动
1 2 3 4 5
| <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency>
|
1 2 3 4 5
| <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
|
配置数据库
修改application.properties
或同目录新建application.yml
1 2 3 4 5 6
| spring: datasource: url: jdbc:mysql://192.168.31.5:3306/managerSys username: root password: root driver-class-name: com.mysql.jc.jdbc.Driver
|
建议添加的配置
hibernate是一种对象关系映射框架,hibernate可以实现自动建表。
1 2 3 4
| jpa: show-sql: true hibernate: ddl-auto: create
|
DDL(Data Definition Language),即数据定义语言,例如建数据库、建表等,都属于数据定义语言。
create模式
每次运行项目,没有表会新建表,如果表内有数据会被清空
create-drop模式
每次运行项目,没有表会新建表,并且每次程序结束后,删除表。
update模式
没有表格会新建,不会删除数据,只会对表进行更新操作。
validate模式
校验模式,校验字段数据类型是否相同,不同则报错。
none模式
关闭ddl,什么都不做,每次启动项目,不会对数据库进行任何验证和操作。
演示Hibernate自动建表
新建Entity
User.java
- 定义成员变量
- @id,设置变量对应为主键
- @GeneratedValue,设置变量为自增
- 一键生成getter、setter方法,以及一个无参的构造方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| package com.mysqlapi;
import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id;
@Entity public class User { @Id @GeneratedValue private Integer id; private String userName; private String password;
public User() {
} public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getUserName() { return userName; }
public void setUserName(String userName) { this.userName = userName; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
|
新建Controller
StudentController.java
1 2 3 4 5 6 7 8
| package com.mysqlapi;
import org.springframework.web.bind.annotation.RestController;
@RestController public class StudentController {
}
|
运行项目
run as spring boot app
日志中可以观察到,show-sql: true
正常工作。
1 2 3 4 5 6 7
| ... Hibernate: drop table if exists user Hibernate: drop table if exists user_seq Hibernate: create table user (id integer not null, password varchar(255), role varchar(255), user_name varchar(255), primary key (id)) engine=InnoDB Hibernate: create table user_seq (next_val bigint) engine=InnoDB Hibernate: insert into user_seq values ( 1 ) ...
|
查看数据库,可以发现已经成功创建!

ddl-auto使用注意
一般情况下,ddl-auto
使用update
模式最安全。