掘金日新计划 · 8 月更文挑战第14天--Spring Boot 完整入门查询demo

33 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

今天我们来学习一下Spring Boot项目从创建到查询数据完整流程,带大家来体验一下Spring Boot的完整流程,来吧老铁,车上还有位置,准备发车啦!

1.数据准备:表结构如下

CREATE TABLE `hotel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `hotel_name` varchar(255) DEFAULT NULL COMMENT '酒店名称',
  `address` varchar(255) DEFAULT NULL COMMENT '酒店地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

表数据:
image.png

2.新版idea工具准备,创建一个全新的项目

点击File->New->Project,如下截图所示 image.png 点击左侧的Spring Initializr,配置对应的Name,Type类型为Maven,配置Java版本为8 image.png 点击Next,设置Spring Boot版本,设置当前最小的版本 选中Spring Web,然后点击Create image.png 稍等一会儿,项目下载依赖比较慢,下载好之后结构如下
image.png

3.配置pom.xml文件,引入mybatis和mysql依赖

<!--        1.引入mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
<!--       2.引入mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

image.png

4.配置一下数据库连接信息

#配置端口
server.port=8088
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/imooc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
#数据库用户名
spring.datasource.username=root
#数据库密码
spring.datasource.password=123456

image.png

5.创建Spring Boot基本的package(entity,controller,service,mapper)

image.png

  1. entity包下创建Hotel类
package com.imooc.springhotel.entity;
public class Hotel {
    private Integer id;
    private String hotelName;
    private String address;
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    @Override
    public String toString() {
        return "Hotel{" +
                "id=" + id +
                ", hotelName='" + hotelName + ''' +
                ", address='" + address + ''' +
                '}';
    }
}

代码说明: 实体entity一般是根据数据库字段来声明对应的字段,然后设置getter和setter方法,最后方便调试,我们重写了toString方法

  1. mapper创建HotelMapper接口类
@Mapper
@Repository
public interface HotelMapper {
@Select("select * from hotel where id=#{id}")
Hotel findById(long id);
}

代码说明
@Mapper表示 mybatis注解
@Repository表示持久层接口注解
@Select表示查询的sql语句,参数用 #{字段名}表示

  1. service包下创建HotelService类
@Service
public class HotelService {
    @Autowired
    HotelMapper hotelMapper;
    public Hotel findById(long id){
        return hotelMapper.findById(id);
    }
}

代码说明
@Service表示表示service层
@Autowired 表示引入对应对象

  1. controller包下创建HotelController类
@RestController
public class HotelController {
    @Autowired
    HotelService hotelService;
    @GetMapping("list")
    @ResponseBody

    public String find(@RequestParam Integer id){
        return hotelService.findById(id).toString();
    }
}

代码说明:
@RestController 说明该类是控制器类
@GetMapping("list") 表示该地址是get方式,名称为 localhot://list
@RequestParam Integer id 表示请求参数类型为整型,字段名为id

6.Spring Boot调用流程

控制器controller调用service,service调用mapper

7.测试接口:

使用postman调用接口:因为数据库只有两条数据,所以id取值为(1,2)
http://localhost:8088/list?id=1
输出的结果如下: image.png

8.总结

1.通过idea初始化下项目
2.在项目pom.xml配置对应的依赖,application.properties配置对应的端口以及数据库连接信息
3.创建包(entity,controller,mapper,service),创建对应的类文件
4.使用postman调用对应的接口