Spring Boot微服务操作MySQL指南

B站影视 港台电影 2025-05-16 11:27 1

摘要:启动MySQL服务并创建数据库mydb。运行Spring Boot应用,JPA会自动创建表结构(ddl-auto=update)。使用Postman测试API:POST

在Spring Boot微服务中操作MySQL数据库可以通过以下步骤实现:

1. 创建项目并添加依赖

使用Spring Initializr创建项目,选择依赖:

Spring WebSpring Data JPAMySQL Driver

Maven依赖

org.springframework.boot

spring-boot-starter-data-jpa

spring-boot-starter-web

com.mysql

mysql-connector-j

2. 配置MySQL连接

application.properties中配置数据库信息:

properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=yourpassword

# JPA配置

spring.jpa.hibernate.ddl-auto=update

spring.jpa.show-sql=true

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

3. 创建实体类

使用JPA注解映射数据库表:

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(可使用Lombok简化)

}

4. 创建Repository接口

继承JpaRepository获得基础CRUD能力:

java

public interface UserRepository extends JpaRepository {

// 自定义查询:根据名称查找用户

List findByName(String name);

}

5. 实现Service层

处理业务逻辑并调用Repository:

java

@Service

public class UserService {

@Autowired

private UserRepository userRepository;

@Transactional

public User createUser(User user) {

return userRepository.save(user);

}

public List getUsersByName(String name) {

return userRepository.findByName(name);

}

}

6. 创建REST Controller

暴露API接口:

java

@RestController

@RequestMapping("/api/users")

public class UserController {

@Autowired

private UserService userService;

@PostMapping

public ResponseEntity createUser(@Valid @RequestBody User user) {

User savedUser = userService.createUser(user);

return ResponseEntity.status(HttpStatus.CREATED).body(savedUser);

}

@GetMapping

public ResponseEntity> getUsers(@RequestParam String name) {

List users = userService.getUsersByName(name);

return ResponseEntity.ok(users);

}

}

7. 数据验证(可选)

在实体类中添加校验注解:

java

@Column(nullable = false)

@NotBlank(message = "Name is required")

private String name;

@Email(message = "Invalid email format")

private String email;

在Controller方法中使用@Valid触发校验:

java

public ResponseEntity createUser(@Valid @RequestBody User user) { ... }

8. 运行与测试

启动MySQL服务并创建数据库mydb。运行Spring Boot应用,JPA会自动创建表结构(ddl-auto=update)。使用Postman测试API:POST

json

{

"name": "Alice",

"email": "alice@example.com"

}

GEThttp://localhost:8080/api/users?name=Alice

常见问题解决

时区问题:在JDBC URL中添加serverTimezone=UTC连接失败:检查MySQL服务状态、用户名密码、网络权限。表名/字段名映射:使用@Table(name="table")@Column(name="column")事务管理:在Service层方法添加@Transactional

通过以上步骤,即可在Spring Boot微服务中完成MySQL数据库的CRUD操作。如需进一步优化,可结合分页查询、异常处理、DTO转换等功能

来源:老客数据一点号

相关推荐