Spring Boot MySQL 教程展示了如何在 Spring Boot 应用中使用 MySQL 数据库。
Spring 是用于创建企业应用的流行 Java 应用框架。 Spring Boot 是 Spring 框架的演进,可帮助您轻松创建独立的,生产级的基于 Spring 的应用。
MySQL
MySQL 是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是非常流行的 LAMP 平台的一部分,该平台包括 Linux,Apache,MySQL 和 PHP。 MySQL 数据库在最重要的 OS 平台上可用。 它可以在 BSD Unix,Linux,Windows 和 Mac 上运行。
MySQL 设置
我们将展示如何在 Debian Linux 系统上安装 MySQL 数据库。
此命令将安装 MySQL 服务器和相关软件包。
这两个命令用于启动和停止 MySQL。
我们使用service mysql status
命令检查数据库的状态。
现在我们需要重置根密码。 我们启动 mysql 命令行工具。 (服务器必须正在运行。)我们以 root 用户身份连接。
我们为 root 设置了新密码。
我们可以使用mysql_secure_installation
来提高 MySQL 服务器的安全性。 我们可以选择改进 MySQL 的 root 密码,删除匿名用户帐户,禁用 localhost 外部的 root 登录以及删除测试数据库。
我们创建一个新的testdb
数据库。
我们创建一个新的 MySQL 用户并将其特权授予testdb
数据库。
创建 MySQL 表
现在,我们将创建一个名为cities
的新 MySQL 表。
cities_mysql.sql
这是用于创建cities
表的 SQL。
使用source
命令,执行 SQL 语句。
Spring Boot MySQL 示例
以下应用是一个简单的 Spring Boot Web 应用,它使用 MySQL 数据库。 我们有一个主页,带有一个链接,用于显示数据库表中的数据。 我们使用 Freemarker 模板系统将数据与 HTML 连接。
这是项目结构。
pom.xml
Spring Boot 启动器是一组方便的依赖项描述符,可以极大地简化 Maven 配置。 spring-boot-starter-parent
具有 Spring Boot 应用的一些常用配置。 spring-boot-starter-web
是使用 Spring MVC 构建 Web(包括 RESTful)应用的入门工具。 spring-boot-starter-freemarker
是使用 Freemarker 视图构建 MVC Web 应用的入门工具。 spring-boot-starter-data-jpa
是将 Spring Data JPA 与 Hibernate 结合使用的入门工具。
mysql-connector-java
依赖性是针对 MySQL 数据库驱动程序的。
spring-boot-maven-plugin
在 Maven 中提供了 Spring Boot 支持,使我们可以打包可执行的 JAR 或 WAR 档案。 它的spring-boot:run
目标运行 Spring Boot 应用。
resources/application.properties
在application.properties
文件中,我们编写了 Spring Boot 应用的各种配置设置。 使用spring.main.banner-mode
属性,我们可以关闭 Spring 标语。 使用logging.level.org.springframework
,我们将 spring 框架的日志记录级别设置为ERROR
。 在 spring 数据源属性中,我们设置了 MySQL 数据源。
com/zetcode/model/City.java
这是City
实体。 每个实体必须至少定义两个注解:@Entity
和@Id
。
@Entity
注解指定该类是一个实体,并映射到数据库表,而@Table
注解指定要用于映射的数据库表的名称。
实体的主键由@Id
注解指定。 @GeneratedValue
提供了一种用于生成主键值的策略。
com/zetcode/CityRepository.java
通过从 Spring CrudRepository
扩展,我们将为我们的数据存储库实现一些方法,包括findAll()
。 这样,我们节省了大量样板代码。
com/zetcode/service/ICityService.java
ICityService
提供findAll()
合同方法声明,以从数据源获取所有城市。
com/zetcode/service/CityService.java
CityService
包含findAll()
方法的实现。 我们使用存储库从数据库检索数据。
注入CityRepository
。
存储库的findAll()
方法返回城市列表。
com/zetcode/MyController.java
MyController
类用@Controller
注解。
我们将ICityService
注入countryService
字段。
我们将带有/showCities
路径的请求映射到控制器的findCities()
方法。 @GetMapping
注解将 GET 请求映射到该方法。 该模型将获取城市列表,并将处理过程发送到showCities.ftl
Freemarker 模板文件。
resources/templates/showCities.ftl
在showCities.ftl
模板文件中,我们在 HTML 表中显示数据。
resources/static/index.html
index.html
中有一个链接,显示所有城市。
com/zetcode/Application.java
Application
设置 Spring Boot 应用。 @SpringBootApplication
启用自动配置和组件扫描。
应用运行后,我们可以导航到localhost:8080
。
在本教程中,我们展示了如何在 Spring Boot 应用中使用 MySQL 数据库。