使用Spring Boot连接和操作数据库(MySQL、PostgreSQL等)!

举报
bug菌 发表于 2025/06/05 11:37:48 2025/06/05
【摘要】 🏆 本文精选收录于《滚雪球学SpringBoot》专栏,专为零基础学习者量身打造。从Spring基础到项目实战,手把手带你掌握核心技术,助力你快速提升,迈向职场巅峰,开启财富自由之路🚀!无论你是刚入门的小白,还是已有基础的开发者,都能在这里找到适合自己的学习路径!    🌟 关注、收藏、订阅,持续更新中!和我们一起高速成长,突破自我!💡

🏆本文收录于「滚雪球学SpringBoot」专栏(全网一个名),手把手带你零基础入门Spring Boot,从入门到就业,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8

🌱 前言 🚀

  Spring Boot为数据库的连接和操作提供了简单、快速的配置方式。通过Spring Data JPA、Spring JDBC等技术,开发者可以轻松地与各种数据库(如MySQL、PostgreSQL)进行交互。在本篇文章中,我们将介绍如何在Spring Boot中配置数据库连接,操作MySQL和PostgreSQL数据库,并使用Spring Data JPA进行数据访问。

💡 配置Spring Boot与数据库的连接

在Spring Boot中,连接和操作数据库的核心配置主要是数据源(DataSource)的配置。Spring Boot提供了自动配置的数据源管理功能,使得数据库连接的配置变得非常简洁。

1. 配置MySQL数据库

1.1 添加依赖

首先,你需要在pom.xml文件中添加MySQL相关的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

1.2 配置application.properties

application.properties文件中配置MySQL的连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

在这个配置中,spring.datasource.url指定了MySQL的连接URL,spring.jpa.hibernate.ddl-auto定义了JPA的DDL策略(update表示自动更新数据库结构),spring.jpa.show-sql=true启用SQL日志显示。

1.3 创建实体类

使用JPA时,通常需要创建实体类,将数据库表映射为Java对象。例如,创建一个User实体类:

@Entity
public class User {

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

    private String name;

    private String email;

    // Getters and setters
}

1.4 创建Repository接口

通过Spring Data JPA,我们可以创建一个Repository接口来执行数据库操作。JpaRepository提供了基本的CRUD操作。

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
}

2. 配置PostgreSQL数据库

2.1 添加依赖

pom.xml中添加PostgreSQL的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>

2.2 配置application.properties

application.properties文件中配置PostgreSQL的连接信息:

spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=postgres
spring.datasource.password=password
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

2.3 创建实体类和Repository接口

对于PostgreSQL数据库的配置,实体类和Repository的创建过程与MySQL相同。你只需要使用JPA来定义实体类,并通过JpaRepository接口来执行CRUD操作。

🛠️ 使用Spring Data JPA进行数据访问

Spring Data JPA是Spring提供的用于简化JPA操作的框架,它可以帮助开发者减少手动编写DAO层的代码,自动生成常用的数据库操作方法。

1. 常见的数据操作方法

Spring Data JPA的JpaRepository提供了多种常用的数据操作方法,如findAll()findById()save()delete()等。

1.1 查询所有数据

List<User> users = userRepository.findAll();

1.2 按ID查询数据

Optional<User> user = userRepository.findById(1L);

1.3 保存数据

User user = new User();
user.setName("John");
user.setEmail("john.doe@example.com");
userRepository.save(user);

1.4 删除数据

userRepository.deleteById(1L);

1.5 自定义查询

Spring Data JPA还支持通过方法名称来定义查询,或者使用@Query注解执行自定义的JPQL(Java Persistence Query Language)查询。

例如,通过方法名称查询:

List<User> users = userRepository.findByName("John");

使用@Query注解执行自定义查询:

@Query("SELECT u FROM User u WHERE u.name = ?1")
List<User> findByNameCustom(String name);

2. 分页和排序

Spring Data JPA支持分页和排序功能,适用于处理大量数据时的需求。

Page<User> users = userRepository.findAll(PageRequest.of(0, 10));  // 第1页,每页10条数据

你也可以使用Sort来对查询结果进行排序:

List<User> users = userRepository.findAll(Sort.by(Sort.Order.asc("name")));

🧪 Spring Boot与数据库集成的其他配置

1. 数据库初始化脚本

Spring Boot允许你在应用启动时自动执行SQL脚本,以初始化数据库。你可以在resources目录下创建schema.sqldata.sql文件,分别用于数据库模式和数据的初始化。

1.1 schema.sql(创建表)

CREATE TABLE IF NOT EXISTS users (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    email VARCHAR(255)
);

1.2 data.sql(插入数据)

INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com');

Spring Boot会自动执行这些脚本,初始化数据库。

2. 连接池配置

Spring Boot支持多种数据库连接池,如HikariCP、Tomcat、DBCP2等。默认情况下,Spring Boot使用HikariCP作为连接池。

你可以通过application.properties进行连接池的配置,例如:

spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.connection-timeout=30000

🎯 总结:Spring Boot与数据库集成的优势

通过Spring Boot与Spring Data JPA的集成,数据库的配置和操作变得简单且高效。Spring Boot的自动配置特性极大地简化了数据源配置、JPA配置和数据库初始化的工作。Spring Data JPA使得我们能够轻松执行常见的数据库操作,而无需手动编写大量的DAO代码。

核心优势:

  • 简化的配置:通过application.propertiesapplication.yml进行简单的数据库配置。
  • Spring Data JPA支持:无需手动编写DAO层代码,自动生成常用的数据库操作方法。
  • 强大的查询功能:支持自定义查询、分页和排序。
  • 内嵌数据库初始化:自动执行schema.sqldata.sql文件来初始化数据库。
  • 高效的数据库连接池:默认支持HikariCP,确保高效的数据库连接管理。

Spring Boot和Spring Data JPA的结合使得数据库操作变得更加简单、高效,是现代Java开发中构建数据驱动应用程序的理想选择。

🧧福利赠与你🧧

  无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学SpringBoot」专栏(全网一个名),bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门SpringBoot,就像滚雪球一样,越滚越大, 无边无际,指数级提升。

  最后,如果这篇文章对你有所帮助,帮忙给作者来个一键三连,关注、点赞、收藏,您的支持就是我坚持写作最大的动力。

  同时欢迎大家关注公众号:「猿圈奇妙屋」 ,以便学习更多同类型的技术文章,免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板、技术文章Markdown文档等海量资料。

✨️ Who am I?

我是bug菌(全网一个名),CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云多年度十佳博主/价值贡献奖,掘金多年度人气作者Top40,掘金等各大社区平台签约作者,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 30w+;更多精彩福利点击这里;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿。

-End-

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。