通过Spring Boot创建项目

news2024/11/28 14:46:55

目录

引言

一、创建新项目

二、通过spring boot创建顾客查询的项目

1.实体类:

2.mapper接口

3.service服务层接口

4.service服务层接口实现类

5.mapper映射文件

三、可能遇到的问题


引言

在通过之前ssm框架的学习后,你是否会感觉ssm的配置过多,操作不是很简便呢,现在,我们来学习一下Spring Boot框架。

Spring Boot框架化了基于 Spring 框架的应用程序的开发和部署,它通过自动配置和默认设置来减少开发人员的工作量。它集成了许多常见的第三方库和框架,如 Spring MVC、Spring Data、Spring Security 等,使开发人员能够更轻松地构建功能丰富、可扩展的应用程序。

一、创建新项目

现在,我们开始创建第一个Spring Boot框架项目吧

首先,新建——》项目——》Spring Initializr

项目SDK选择电脑上有的SDK,我用的是1.8

java version的版本进去后再进行修改

点击下一步,在选择配置时可能会有问题,我们可以在项目中进行后继的调整。

进入程序后,先运行一下检查是否有错误。

如果运行报错

springboot java: 错误: 无效的源发行版:15

这时,我们就要修改一下我们的java version和spring boot版本了。

打开项目结构——》项目,如果你的java SDK版本为1.8,那么在pom文件中,你的java version版本就要改为8


之后再修改springboot的版本,这里我使用的就是2.7.11版本的

全部结束后点击刷新,等待jar包等的导入。

之后,我们在controller层写一下返回

这时,我们发现,可以通过http访问 

我们发现,无论是直接访问还是通过postman访问都可以得到数据。

那么,现在我们就来编写一个顾客查询。

二、通过spring boot创建顾客查询的项目

准备pojo,mapper,service,controller等各个层。

先在application.properties中配置一下url等

spring.application.name=com.example.demo
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=123456

这是我的数据库: 

create table customer
(
    id       int auto_increment
        primary key,
    username varchar(20) not null,
    jobs     varchar(50) null,
    phone    varchar(13) null
);

1.实体类:
package com.example.demo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class Customer {
    private int id;
    private String username;
    private String jobs;
    private String phone;

}
2.mapper接口
package com.example.demo.mapper;

import com.example.demo.pojo.Customer;

import java.util.List;

public interface CustomerMapper {
    List<Customer> findAll();
}
3.service服务层接口
package com.example.demo.service;

import com.example.demo.pojo.Customer;

import java.util.List;

public interface CustomerService {
    List<Customer> findAll();
}
4.service服务层接口实现类
package com.example.demo.service.impl;

import com.example.demo.mapper.CustomerMapper;
import com.example.demo.pojo.Customer;
import com.example.demo.service.CustomerService;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CustomerServiceImpl implements CustomerService {
    @Autowired
    private CustomerMapper customerMapper;

    public List<Customer> findAll() {
        return customerMapper.findAll();
    }
}
5.mapper映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.CustomerMapper">
  <resultMap id="BaseResultMap" type="com.example.demo.pojo.Customer">
    <!--@JPA.Support generated on 2024-05-27 08:48:59.-->
    <!--@Table customer-->
    <id column="id" jdbcType="INTEGER" property="id"/>
    <result column="username" jdbcType="VARCHAR" property="username"/>
    <result column="jobs" jdbcType="VARCHAR" property="jobs"/>
    <result column="phone" jdbcType="VARCHAR" property="phone"/>
  </resultMap>
  <sql id="Base_Column_List">
    <!--@JPA.Support generated on 2024-05-27 08:48:59.-->
    id, username, jobs, phone
  </sql>

  <select id="findAll" resultMap="BaseResultMap">
    select * from customer
  </select>

</mapper>

package com.example.demo.controller;

import com.example.demo.pojo.Customer;
import com.example.demo.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping(produces = "application/json;charset=UTF-8")
public class HelloController {

    @Autowired

    private CustomerService customerService;

    @GetMapping("/customer/list")
    public List<Customer> find(){
        return customerService.findAll();
    }
    @GetMapping("hello")
    public String hello(){
        return "hello! springboot";
    }
}

三、可能遇到的问题

在注入时候无法找到bean,我们可以在启动项中添加MapperScan来解析mapper中的文件。在添加后我们发现pom配置文件出错。这时我们需要修改pom文件。之前我们用的是spring的mybatis启动器,我们将spring的mybatis启动器删除,添加springboot的mybatis启动器。

<!--SpringBoot的Mybatis启动器-->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.0.1</version>
</dependency>

在配置好后刷新一下Maven

在刷新Maven后修改DemoApplication文件 

这样基本上就解决了,可能第一个service实现类问题解决了,建第二个时又出现这种情况,但并不影响项目的运行,这种是正常情况,如果看着难受,重启一下idea就可以了

这时我们再次启动项目。访问一下http://127.0.0.1:8080/customer/list,查看是否有数据。

我们发现在浏览器中是能看到数据的。

我们再次在postman中查询。

我们发现可以查到数据,这样,我们的springboot查询就完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Github文件夹重命名|编程tips·24-08-22

小罗碎碎念 这篇推文来解决一个问题&#xff0c;**我上传代码带Github以后&#xff0c;想要修改文件夹的名称怎么办&#xff1f;**例如&#xff0c;我要将文件夹24-08-22修改为联接散点图&#xff5c;24-08-22&#xff0c;可以遵循以下操作。 一、配置SSH 先登录github&#x…

【PyTorch】关于torchvision中的数据集以及dataloader的使用

前提文章目录 【PyTorch】深度学习PyTorch环境配置及安装【详细清晰】 【PyTorch】深度学习PyTorch加载数据 【PyTorch】关于Tensorboard的简单使用 【PyTorch】关于Transforms的简单使用 文章目录 前提文章目录数据集简介程序中下载数据集读取数据集结合transform进行读取数据…

【C++贪心】2498. 青蛙过河 II

本文涉及知识点 贪心 优化后不需要二分 LeetCode2498. 青蛙过河 II 给你一个下标从 0 开始的整数数组 stones &#xff0c;数组中的元素 严格递增 &#xff0c;表示一条河中石头的位置。青蛙一开始在第一块石头上&#xff0c;它想到达最后一块石头&#xff0c;然后回到第一块…

使用分布式锁解决IM聊天数据重复插入的问题

导航 业务背景问题分析与定位探索可行的解决方案 数据库层面处理——唯一索引应用程序层面处理——分布式锁 分布式锁概述 分布式锁需要具备哪些特性&#xff1f;分布式锁有哪些实现方式&#xff1f; 基于数据库的实现方式基于Redisson实现方式 Redission介绍 概述可重入锁 基…

STM32G474的HRTIM用作时基定时器

STM32G474的HRTIM由7个定时器组成&#xff0c;分别是主定时器&#xff0c;定时器A&#xff0c;定时器B&#xff0c;定时器C&#xff0c;定时器D&#xff0c;定时器E和定时器F&#xff0c;每个定时器均可单独配置&#xff0c;独立工作。每个定时器都有1个独立的计数器和4个独立的…

九泰智库 | 医械周刊- Vol.51

⚖️ 法规动态 白内障人工晶体类医用耗材集采落地&#xff0c;平均降幅60% 湖北省自7月10日起实施人工晶体类医用耗材集中带量采购政策&#xff0c;中选产品平均降幅达60%&#xff0c;显著减轻了患者经济负担。此举是国家组织医用耗材采购的一部分&#xff0c;旨在通过集中采购…

MES软件实施:解锁企业数字化转型的无限潜能

MES&#xff08;制造执行系统&#xff09;软件实施是企业数字化转型的重要一环&#xff0c;它确实能够解锁企业数字化转型的无限潜能。以下是对这一主题的详细分析&#xff1a; 一、MES软件的核心价值 集成与协同&#xff1a; MES软件能够集成企业内的各种生产数据和设备&…

企业市值排名3D可视化,重塑商业版图新维度

在这个数据驱动的时代&#xff0c;每一个数字背后都蕴藏着无限的可能与机遇。企业市值&#xff0c;作为衡量企业综合实力与市场认可度的关键指标&#xff0c;其动态变化不仅是投资者关注的焦点&#xff0c;也是全球商业竞争格局的晴雨表。 当枯燥的数据表格被转化为生动的3D场景…

如何选择需求跟踪管理软件?8款优质推荐

本文将介绍8款需求跟踪管理软件&#xff1a;PingCode、Worktile、得帆、协作云、火山引擎、Jira、VersionOne、YouTrack。 在面对众多需求跟踪管理软件时&#xff0c;每款软件都声称能提升效率、简化流程&#xff0c;但到底哪一款才真正适合你的团队&#xff1f;为了选择合适的…

Hadoop的概念

1.什么是大数据 数据体量巨大&#xff1a;数据量规模庞大&#xff0c;通常以PB&#xff08;拍字节&#xff09;或EB&#xff08;艾字节&#xff09;来衡量&#xff0c;远远超出了传统数据库和数据处理工具的处理能力。数据类型多样&#xff1a;大数据包括结构化数据、半结构化…

在控件graphicsView中实现绘图功能(二)

目录 前言&#xff1a;基础夯实&#xff1a;1.创建 QGraphicsScene 和 QGraphicsView2. 在 QGraphicsScene 中添加椭圆3. 渲染和显示4. 推荐学习本文之前查看的链接&#xff1a; 效果展示&#xff1a;实现功能&#xff1a;遇到问题&#xff1a;核心代码&#xff1a;仓库源码&am…

windows环境基于python 实现微信公众号文章推送

材料&#xff1a; 1、python 2.7 或者 python3.x 2、windows 可以通过 “python -m pip --version” 查看当前的pip 版本 E:\Downloads\newsInfo>python -m pip --version pip 20.3.4 from C:\Python27\lib\site-packages\pip (python 2.7) 3、windows 系统 制作&#xf…

基于STM32开发的智能家居安防系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化传感器数据采集与处理安防控制与报警机制Wi-Fi通信与远程监控应用场景 家庭安防系统办公室与商铺的安全监控常见问题及解决方案 常见问题解决方案结论 1. 引言 随着智能家居技术的…

【Hot100】LeetCode—226. 翻转二叉树

目录 1- 思路Queue 队列实现层序遍历 交换左右 2- 实现⭐226. 翻转二叉树——题解思路 3- ACM 实现 原题连接&#xff1a;226. 翻转二叉树 1- 思路 Queue 队列实现层序遍历 交换左右 1- 借助 Queue 实现层序遍历2- 实现左右交换方式 2- 实现 ⭐226. 翻转二叉树——题解思…

带你玩转小程序推广,实现短链接一键跳转

不知道各位有没有想过&#xff0c;短链接直接跳转到微信小程序到底该怎么操作呢&#xff1f;掌握这个小技能&#xff0c;能让你的推广效率大幅提升哦。今天就给大家分享一个全新方法&#xff0c;教你如何从短链接直接跳转到微信小程序&#xff0c;实现高效的一键式跨越。 一、…

源代码怎么进行加密?2024年10款源代码加密软件推荐

在软件开发中&#xff0c;源代码是企业的核心资产&#xff0c;其安全性直接关系到企业的竞争力和商业机密。为了防止源代码被未授权访问、复制或篡改&#xff0c;源代码加密成为了一种常见的安全措施。2024年&#xff0c;随着技术的发展&#xff0c;市场上出现了多种源代码加密…

笔记-系统规划与管理师-案例题-2023年-服务运营管理

【说明】 小李是跨国公司新任命的IT服务经理&#xff0c;帮助提升中国区总部的IT服务管理水平。中国区总部的运维管理体系运营了近三年&#xff0c;内外部环境发生了很多变化&#xff0c;其中: &#xff08;1&#xff09;内部变化包括团队组织结构调整、部分团队精简改为外包支…

纯前端导出excel插件pikaz-excel-js使用小结

最近项目有多个报表开发并前端导出为excel的需求&#xff0c;第一张报表用的是pikaz-excel-js插件&#xff0c;git地址为https://github.com/pikaz-18/pikaz-excel-js&#xff0c;网上文档虽然多&#xff0c;但很多都很基础&#xff0c;官方文档介绍也很简单&#xff0c;没有很…

搜维尔科技:‌Manus VR手套通过触觉反馈技术与机器人进行互动

‌Manus VR手套通过触觉反馈技术与机器人进行互动。‌这种技术允许用户通过手套与机器人进行复杂的动作遥操作和训练&#xff0c;使得用户能够通过手套的动作来控制机器人的运动&#xff0c;同时机器人执行的动作也可以通过手套的触觉反馈功能传达给用户&#xff0c;使用户能够…

线索分析2个要点分析:营销归因与市场ROI转化效果评估

1、营销归因 在复杂的大数据时代&#xff0c;消费者能接触的渠道、设备越来越多&#xff0c;营销活动分析也变得越来越复杂。 在当前的营销环境中&#xff0c;了解并优化营销策略是至关重要的。一个关键的部分是通过分析不同营销活动如何促成商机并赢得订单。而要实现这一目标…