摘要:启动MySQL服务并创建数据库mydb。运行Spring Boot应用,JPA会自动创建表结构(ddl-auto=update)。使用Postman测试API:POST
在Spring Boot微服务中操作MySQL数据库可以通过以下步骤实现:
1. 创建项目并添加依赖
使用Spring Initializr创建项目,选择依赖:
Spring WebSpring Data JPAMySQL DriverMaven依赖:
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:POSTjson
{
"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转换等功能
来源:老客数据一点号