Spring Boot是一个基于Spring框架的快速开发Web应用的框架,它简化了Web项目的搭建和部署过程,同时集成了大量的开发工具和优秀的第三方库,比如Mybatis-Plus框架,可以大幅度提升开发效率和代码质量。
在本文中,我将分享如何使用Spring Boot框架和Mybatis-Plus框架搭建一个基础的Web项目,包括数据库连接、数据表创建、实体类、控制器、服务等方面的内容。
一、创建Spring Boot项目
首先我们需要创建一个Spring Boot项目,可以使用Spring官方的初始化工具start.spring.io来创建一个简单的项目模板。在这里我们选择使用Gradle来构建项目,Java版本为11,Spring Boot版本为2.5.5。
创建好项目后,我们需要在build.gradle中加入Mybatis-Plus的依赖:
implementation ‘com.baomidou:mybatis-plus-boot-starter:3.4.3’
二、配置数据库连接
在application.yml中添加数据库连接的配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: password
在本例中,我们使用的是MySQL数据库,数据库名为test,用户名为root,密码为password。可以根据实际情况进行修改。
三、创建数据表并生成实体类
Mybatis-Plus框架可以通过代码自动生成数据表和实体类,非常方便。我们可以使用Mybatis-Plus Generator来生成数据表和实体类。可以在build.gradle中添加以下依赖:
implementation ‘com.baomidou:mybatis-plus-generator:3.4.3’
然后在项目中添加一个GeneratorConfig类,用来配置代码生成器:
package com.example.demo.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class GeneratorConfig {
public static void main(String[] args) {
AutoGenerator autoGenerator = new AutoGenerator();
GlobalConfig globalConfig = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
globalConfig.setOutputDir(projectPath + "/src/main/java");
globalConfig.setAuthor("blog.yingge.fun");
globalConfig.setOpen(false);
globalConfig.setFileOverride(true);
globalConfig.setServiceName("%sService");
globalConfig.setIdType(IdType.AUTO);
globalConfig.setDateType(DateType.ONLY_DATE);
autoGenerator.setGlobalConfig(globalConfig);
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8");
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("password");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
autoGenerator.setDataSource(dataSourceConfig);
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.demo");
autoGenerator.setPackageInfo(packageConfig);
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
}
}
运行GeneratorConfig类后会在项目中自动生成相应数据库表对应的实体类,我们可以根据需要修改实体类的内容。
四、创建控制器和服务
在Spring Boot项目中,我们需要使用控制器和服务来实现Web API的功能。首先,我们来创建一个旅游产品的控制器:
package com.example.demo.controller;
import com.example.demo.entity.Product;
import com.example.demo.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(“/api/v1/products”)
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping
public List<Product> getProductList() {
return productService.getProductList();
}
@GetMapping("/{id}")
public Product getProductById(@PathVariable Long id) {
return productService.getProductById(id);
}
@PostMapping
public Product createProduct(@RequestBody Product product) {
return productService.createProduct(product);
}
@PutMapping("/{id}")
public Product updateProduct(@PathVariable Long id, @RequestBody Product product) {
return productService.updateProduct(id, product);
}
@DeleteMapping("/{id}")
public void deleteProduct(@PathVariable Long id) {
productService.deleteProduct(id);
}
}
在上述代码中,我们使用@RestController注解来声明一个控制器,并使用@Autowired注解来注入ProductService服务。通过@GetMapping、@PostMapping、@PutMapping和@DeleteMapping等注解来定义控制器的不同API接口,这些控制器接口可以对旅游产品进行增删改查的操作。
接着,我们来创建一个ProductService服务,该服务实现了对旅游产品的增删改查操作:
```java
package com.example.demo.service;
import com.example.demo.entity.Product;
import com.example.demo.mapper.ProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductService {
@Autowired
private ProductMapper productMapper;
public List<Product> getProductList() {
return productMapper.selectList(null);
}
public Product getProductById(Long id) {
return productMapper.selectById(id);
}
public Product createProduct(Product product) {
productMapper.insert(product);
return product;
}
public Product updateProduct(Long id, Product product) {
product.setId(id);
productMapper.updateById(product);
return product;
}
public void deleteProduct(Long id) {
productMapper.deleteById(id);
}
}
在上述代码中,我们使用@Service注解来声明ProductService服务,并使用@Autowired注解来自动注入ProductMapper映射器。该服务实现了对旅游产品的增删改查操作,并通过ProductMapper映射器来读取和操作数据库。
五、总结
在这篇博客中,我们介绍了如何使用Spring Boot框架和Mybatis-Plus框架搭建一个基础的Web项目,包括数据库连接、数据表创建、实体类、控制器和服务等方面的内容。通过这个示例项目,我们可以了解Spring Boot和Mybatis-Plus的基本用法,并掌握Web开发的基本流程和操作方法。在实际项目中,我们可以根据需求进行适当的扩展和调整,同时加入更多的功能和应用。
接下来,我想简要总结一下本文中的关键点:
-
Spring Boot是一个基于Spring框架的快速开发Web应用的框架,可以大幅度提升开发效率和代码质量。
-
Mybatis-Plus是一个基于Mybatis框架的快速开发ORM框架,可以大幅度简化数据库操作和代码编写。
-
通过使用Mybatis-Plus Generator可以快速生成数据库表和实体类,避免手动编写SQL语句和实体类的繁琐过程。
-
在Spring Boot项目中,我们可以使用控制器和服务来实现Web API的功能,可以通过@GetMapping、@PostMapping、@PutMapping和@DeleteMapping等注解来定义控制器的不同API接口,通过@Service注解来声明服务。
希望这篇博客能够对读者们有所帮助,对于想深入学习Spring Boot和Mybatis-Plus的读者们,建议多看一些相关的文档和示例,进行更深入的学习和应用。