一、项目概述
本文将介绍如何使用 Spring Boot 和 MySQL 数据库进行一个简单的 Web 应用开发。应用将使用 MyBatis 作为 ORM 框架,使用 Maven 进行项目管理,并最终打包为 JAR 文件进行部署。
二、项目结构
整个项目将分为以下几个部分:
- 项目模块:包含主要代码、配置等。
- 数据库:使用 MySQL 存储数据。
- Maven 配置:用于管理依赖和构建项目。
- 打包部署:生成可执行的 JAR 文件。
三、环境准备
- JDK:确保安装 Java 8 或更高版本。
- Maven:安装 Maven 以便进行依赖管理和项目构建。
- MySQL:安装并配置 MySQL 数据库。
- IDE:推荐使用 IntelliJ IDEA 或 Eclipse 作为开发环境。
四、Maven 配置及依赖
在项目的 pom.xml
中添加必要的依赖:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>spring-boot-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <java.version>1.8</java.version> <spring.boot.version>2.6.6</spring.boot.version> </properties> <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <!-- Spring Boot Starter Test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
五、数据库设计
创建一个名为 user
的表用于存储用户信息:
CREATE DATABASE spring_boot_demo; USE spring_boot_demo; CREATE TABLE user ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE
);
六、Spring Boot 项目结构
在 src/main/java/com/example/springbootdemo
下创建项目结构:
com.example.springbootdemo
├── SpringBootDemoApplication.java
├── config
│ └── MyBatisConfig.java
├── controller
│ └── UserController.java
├── mapper
│ └── UserMapper.java
├── model
│ └── User.java
└── service └── UserService.java
1. 主应用程序
package com.example.springbootdemo; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class SpringBootDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringBootDemoApplication.class, args); }
}
2. 数据模型
package com.example.springbootdemo.model; public class User { private Integer id; private String name; private String email; // Getters and Setters
}
3. MyBatis Mapper
package com.example.springbootdemo.mapper; import com.example.springbootdemo.model.User;
import org.apache.ibatis.annotations.*; import java.util.List; @Mapper
public interface UserMapper { @Select("SELECT * FROM user") List<User> findAll(); @Insert("INSERT INTO user(name, email) VALUES(#{name}, #{email})") void insert(User user);
}
4. 服务层
package com.example.springbootdemo.service; import com.example.springbootdemo.mapper.UserMapper;
import com.example.springbootdemo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; @Service
public class UserService { @Autowired private UserMapper userMapper; public List<User> getAllUsers() { return userMapper.findAll(); } public void addUser(User user) { userMapper.insert(user); }
}
5. 控制器
package com.example.springbootdemo.controller; import com.example.springbootdemo.model.User;
import com.example.springbootdemo.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 addUser(@RequestBody User user) { userService.addUser(user); }
}
6. MyBatis 配置
在 application.yml
中配置数据库连接和 MyBatis 设置:
spring: datasource: url: jdbc:mysql://localhost:3306/spring_boot_demo?useSSL=false&serverTimezone=UTC username: root password: yourpassword mybatis: mapper-locations: classpath:mapper/*.xml
七、打包与部署
打包为 JAR 文件
在项目根目录下运行以下命令以打包项目:
mvn clean package
打包完成后,可以在 target
目录中找到生成的 spring-boot-demo-1.0-SNAPSHOT.jar
文件。
运行 JAR 文件
使用以下命令运行生成的 JAR 文件:
java -jar target/spring-boot-demo-1.0-SNAPSHOT.jar
访问 http://localhost:8080/users 来测试应用程序。
八、总结
通过本文,我们完成了一个简单的 Spring Boot Web 应用程序的开发,使用了 MySQL 数据库和 MyBatis 进行数据交互,并通过 Maven 进行项目管理和打包。