在Spring Boot项目中使用MySQL数据库

一、引言

MySQL 是一个广泛使用的开源关系型数据库,而 Spring Boot 则是一个流行的 Java 框架,提供了快速构建生产级别的独立 Spring 应用的能力。将 MySQL 与 Spring Boot 集成,可以轻松地管理应用的数据存储。本文将介绍如何在 Spring Boot 项目中配置和使用 MySQL 数据库。

二、环境准备

1. 安装 MySQL

首先,确保你的系统上已经安装了 MySQL。你可以从MySQL 官方网站下载并安装 MySQL。如果你已经安装好了,可以通过以下命令检查 MySQL 服务是否正在运行:

复制代码
mysql -u root -p
2. 创建数据库和用户

登录 MySQL 后,创建一个数据库和用户供 Spring Boot 项目使用:

复制代码
CREATE DATABASE my_spring_boot_db;
CREATE USER 'springuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON my_spring_boot_db.* TO 'springuser'@'localhost';
FLUSH PRIVILEGES;

这里我们创建了一个名为 my_spring_boot_db 的数据库,并为用户 springuser 分配了所有权限。

三、Spring Boot 项目的搭建

1. 创建 Spring Boot 项目

你可以使用 Spring Initializr 快速创建一个 Spring Boot 项目。在Spring Initializr 网站上选择以下配置:

  • Project: Maven Project
  • Language: Java
  • Spring Boot: 版本选择稳定版本
  • Dependencies: Spring Web, Spring Data JPA, MySQL Driver

点击"Generate"按钮下载项目模板,并将其解压缩。

2. 添加 MySQL 依赖

在创建的项目中,打开 pom.xml 文件,确认已经包含以下 MySQL 依赖:

复制代码
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

这将使 Spring Boot 能够与 MySQL 数据库通信。

四、配置 MySQL 数据库连接

在 src/main/resources 目录下的 application.properties 文件中,添加以下数据库连接配置:

复制代码
spring.datasource.url=jdbc:mysql://localhost:3306/my_spring_boot_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=springuser
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# JPA 配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

这些配置告诉 Spring Boot 如何连接到 MySQL 数据库,并启用 JPA(Java Persistence API)进行数据访问。

五、创建实体类和数据访问层

1. 创建实体类

在 src/main/java/com/example/demo 目录下创建一个 model 包,并在其中创建一个名为 User 的实体类:

复制代码
package com.example.demo.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // Getters and setters
}
2. 创建数据访问接口

接下来,在 src/main/java/com/example/demo 目录下创建一个 repository 包,并在其中创建一个名为 UserRepository 的接口:

复制代码
package com.example.demo.repository;

import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

UserRepository 继承自 JpaRepository,提供了常用的数据库操作方法,如保存、删除、查找等。

六、编写服务层和控制器

1. 创建服务层

在 src/main/java/com/example/demo 目录下创建一个 service 包,并在其中创建一个名为 UserService 的类:

复制代码
package com.example.demo.service;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public void saveUser(User user) {
        userRepository.save(user);
    }
}
2. 创建控制器

最后,在 src/main/java/com/example/demo 目录下创建一个 controller 包,并在其中创建一个名为 UserController 的类:

复制代码
package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @PostMapping
    public void createUser(@RequestBody User user) {
        userService.saveUser(user);
    }
}

七、运行项目并测试

1. 启动应用

你可以通过以下命令运行应用:

复制代码
mvn spring-boot:run
2. 测试 API

应用启动后,可以使用 curl 或 Postman 等工具测试 API。例如,获取所有用户:

复制代码
curl -X GET http://localhost:8080/users

或创建新用户:

复制代码
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d '{"name":"John Doe","email":"john.doe@example.com"}'

八、结语

通过本文,你已经了解了如何在 Spring Boot 项目中集成 MySQL 数据库,并通过简单的 API 来管理用户数据。Spring Boot 的简洁性和 MySQL 的强大功能结合,使得开发高效且愉快。

相关推荐
考虑考虑4 小时前
瀚高数据库
数据库·后端·postgresql
dishugj5 小时前
oracle日志切换三条命令区别
数据库
Patrick在香港5 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
悟道书生5 小时前
(一)Navicate为什么转存结构和数据只转存表而不包含建库?
数据库·oracle
赤龙ERP6 小时前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家
数据库·人工智能·大模型·rpa·erp·企业数字化·builderpattern
lusklusklusk6 小时前
SQL Server补丁版本号为什么“日期新反而版本低”?——GDR、CU、CU+GDR 版本号规则与升级路径详解
数据库
key_3_feng6 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
TangGeeA6 小时前
数据库、SQL 与 DB AI
数据库·人工智能·sql
IvorySQL6 小时前
开源数据库进校园| 11 月 3 日,IvorySQL 校园行走进浙大宁波校区:从 PostgreSQL 扩展生态到 AI 实战
数据库·postgresql·开源
福建佰胜张工6 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化