概述
在Spring Boot项目中集成MySQL数据库是常见的开发需求。本文将演示如何快速配置MySQL数据库连接,并通过JPA实现基本的增删改查(CRUD)操作。
环境准备
- JDK 1.8+
- MySQL 5.7+(推荐8.0+)
- Spring Boot 2.7.x+
- IDE(IntelliJ IDEA/Eclipse)
实现步骤
1. 创建Spring Boot项目
通过Spring Initializr或IDE创建项目,选择以下依赖:
- Spring Web
- Spring Data JPA
- MySQL Driver
2. 添加依赖(pom.xml)
xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
3. 配置数据库连接(application.properties)
properties
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
4. 创建实体类
java
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(unique = true)
private String email;
// 构造器/getter/setter省略(需实际添加)
}
5. 创建Repository接口
java
public interface UserRepository extends JpaRepository<User, Long> {
}
6. 实现Service层
java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User createUser(User user) {
return userRepository.save(user);
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
public Optional<User> getUserById(Long id) {
return userRepository.findById(id);
}
public User updateUser(User user) {
return userRepository.save(user);
}
public void deleteUser(Long id) {
userRepository.deleteById(id);
}
}
7. 创建Controller
java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
public User createUser(@RequestBody User user) {
return userService.createUser(user);
}
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@GetMapping("/{id}")
public Optional<User> getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
user.setId(id);
return userService.updateUser(user);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userService.deleteUser(id);
}
}
测试API
- 创建用户:
POST /api/users
- 获取所有用户:
GET /api/users
- 获取单个用户:
GET /api/users/{id}
- 更新用户:
PUT /api/users/{id}
- 删除用户:
DELETE /api/users/{id}
常见问题排查
-
数据库连接失败
- 检查MySQL服务是否启动
- 验证用户名/密码是否正确
- 确保数据库
springboot_db
已存在
-
表未自动创建
- 检查
ddl-auto
配置是否为update - 确认实体类正确使用JPA注解
- 检查
-
时区问题
- 在连接URL中添加
&serverTimezone=Asia/Shanghai
- 在连接URL中添加
总结
通过Spring Data JPA可以快速实现数据库操作。实际开发中可结合DTO、异常处理等功能完善项目。建议使用Postman测试接口,并通过MySQL Workbench验证数据变更。
希望这篇教程能帮助您快速上手Spring Boot与MySQL的集成开发!如有疑问欢迎留言讨论。