通过Spring Boot创建项目

news/2024/9/18 12:43:08/ 标签: spring boot, maven, java, intellij-idea

目录

引言

一、创建新项目

二、通过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_incrementprimary key,username varchar(20) not null,jobs     varchar(50) null,phone    varchar(13) null
);
1.实体类:
java">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接口
java">package com.example.demo.mapper;import com.example.demo.pojo.Customer;import java.util.List;public interface CustomerMapper {List<Customer> findAll();
}
3.service服务层接口
java">package com.example.demo.service;import com.example.demo.pojo.Customer;import java.util.List;public interface CustomerService {List<Customer> findAll();
}
4.service服务层接口实现类
java">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 {@Autowiredprivate 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>

java">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 {@Autowiredprivate 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.ppmy.cn/news/1516472.html

相关文章

Redis 的 主从复制

目录 1 Redis 主从复制介绍 2 Redis主从复制原理 2.1 主从同步过程 3 Redis实现主从复制 3.1 环境配置 3.2 修改各节点的配置文件 3.2.1 MASTER 3.2.2 SLAVE 3.3.3 重启Redis 3.3 查看是否实现了主从复制 3.3.1 MASTER 3.3.2 SLAVE 3.3.3 Redis 常用操作 3.3.4 数据添加查看…

Yolo环境搭建(深度学习基础环境)

需要安装的东西 CUDAcuDnn魔法 一、CUDA安装(Windows10环境) 第一&#xff1a;下载驱动 第二&#xff1a;查看显卡支持的最高CUDA的版本&#xff0c;以便下载对应的CUDA安装包 第三&#xff1a;确定CUDA版本对应的cuDNN版本&#xff0c;这个其实不用太关注&#xff0c;因为…

【解析几何笔记】9. 向量的内积运算

9. 向量的内积运算 定义&#xff1a;有向量 α , β \pmb{\alpha},\pmb{\beta} α,β&#xff0c; α ⋅ β ∣ α ∣ ∣ β ∣ ⋅ cos ⁡ < α , β > \pmb{\alpha}\cdot\pmb{\beta}|\pmb{\alpha}||\pmb{\beta}|\cdot\cos<\pmb{\alpha},\pmb{\beta}> α⋅β∣α…

Qt编写贪吃蛇小游戏完整项目

文章目录 前言一、Qt环境准备二、编写思路三、编写代码1、开始游戏界面代码1.1、绘制界面1.2、界面基本配置 2、选择难度界面代码3、游戏房间界面制作3.1、界面基础配置3.2、提前配置类中的成员变量3.2.1、QRectF 3.3、检测游戏是否结束的方法3.4、蛇移动的实现3.4.1、蛇向上移…

【赵渝强老师】执行MySQL的冷备份与冷恢复

冷备份是指发生在数据库已经正常关闭的情况下进行的备份。由于此时数据库已经关闭&#xff0c;通过冷备份可以将数据库的关键性文件拷贝到另外存储位置。冷备份因为只是拷贝文件&#xff0c;因此备份的速度非常快。在执行恢复时&#xff0c;只需将文件再拷贝回去就可以很容易恢…

CPU利用率和CPU负载的区别

CPU利用率和负载虽然相关,但确是两个不同的概念。 CPU利用率 CPU利用率表示CPU实际工作时间与总时间的比率,通常以百分比表示。范围是0% 到 100%&#xff0c;CPU利用率的含义是表示CPU在给定时间内实际执行指令的时间比例&#xff0c;举个例子: 70% 的CPU利用率意味着在某个时…

TCP、UDP

端口号: 端口号: 16位数值(unsigned short ) //0~65535 (65536个数) //标示一个进程 TCP和 UDP 的端口号是独立的 端口号: (1) 作用:唯一的标识一个进程 每一个应用程序进程有一个端口号&#xff0c; 通讯时区分数据包属于哪个应…

硬件面试经典 100 题(81~90)题

81、请问下图电路中二极管 D1、D2 有什么作用&#xff1f; 在 Vi 输入电压接近于零时&#xff0c;D1、D2 给三极管 T1、T2 提供偏置电压&#xff0c;使 T1、T2 维持导通&#xff0c;以消除交越失真。 陈氏解释 这道题参见&#xff1a;硬件面试经典 100 题&#xff08;51~70 题…

Vue3 后台管理系统项目 前端部分

这里写目录标题 1 创建Vue3项目1.1 相关链接1.2 Vue Router1.3 Element1.4 scss1.5 mitt1.6 axios1.7 echarts1.8 配置vite.config.js 2 CSS部分2.1 样式穿透2.2 :style &#xff1a;在样式中使用插值语法 3. ElementUI3.1 rules&#xff1a; 数据验证3.2 修改element.style中的…

信号分解|基于北方苍鹰优化变分模态分解的时序信号分解Matlab程序NGO-VMD

信号分解|基于北方苍鹰优化变分模态分解的时序信号分解Matlab程序NGO-VMD 文章目录 一、基本原理二、实验结果三、核心代码四、代码获取五、总结 信号分解|基于北方苍鹰优化变分模态分解的时序信号分解Matlab程序NGO-VMD 一、基本原理 NGO-VMD结合了北方苍鹰优化算法&#xff…

移动端爬虫学习记录

免责声明 本文旨在探讨移动端爬虫技术的应用和挑战&#xff0c;仅供教育和研究用途。请确保在合法合规的框架内使用爬虫技术&#xff0c;遵循相关法律法规和网站的使用条款。作者不对因使用本文内容而产生的任何法律或安全问题承担责任。 1、初识移动端爬虫 学习移动端爬虫的原…

7. Java 中 HashMap 的扩容机制是怎样的?

​​​​​​HashMap 是基于哈希表的数据结构&#xff0c;其容量是动态调整的。当存储的元素数量增加时&#xff0c;为了保持较好的性能&#xff0c;HashMap 需要进行扩容。HashMap 的扩容机制是为了减少哈希碰撞&#xff0c;提高查询效率。 1. 初始容量和负载因子 初始容量&a…

Android 退出app方式(回忆录)

一、点击返回键或者设备back键调用finish private void back(){finish(); }或Overridepublic void onBackPressed() {super.onBackPressed();}二、结束进程 android.os.Process.killProcess(android.os.Process.myPid()); 三、方法二exit结束java虚拟机 System.exit(0); 四…

uniapp中路由的基本使用方法、参数传递方式以及路由拦截与权限控制

一、概述 在uniapp开发中&#xff0c;路由是非常重要的一个方面&#xff0c;它可以实现页面之间的跳转和传递参数。本文将介绍uniapp中路由的使用技巧&#xff0c;并给出具体的代码示例。 二、uniapp路由的基本使用 在uniapp中&#xff0c;路由的基本使用可以通过uni.navigate…

ai变声:视频怎么变音?分享6个语音变声器,视频变声不再难!

想过如何让自己的直播内容更吸引人吗&#xff1f;你是否希望通过变声器来打造独特的声音效果&#xff1f;或者&#xff0c;如何用创意声音提升观众的互动体验呢&#xff1f;随着直播行业的不断发展&#xff0c;每位主播都在努力寻找吸引观众的独特方式&#xff0c;而变声器正是…

【Test 001】Qt 开发基础体系 QMap 类和 QHash 类以及 QVector 类

文章目录 1.QMap 详解1.1 QMap 的介绍1.2 QMap 的具体用法如下1.3 QmultiMap类 2.QHash 详解3. QMap 和 QHash 的对比4. QVector 详解 1.QMap 详解 1.1 QMap 的介绍 &#x1f427;① QMap<key,T>提供一个从类型为Key的键到类型为T的值的映射。通常&#xff0c;QMap存储的…

新手小白Ubuntu18.04超详细安装教程

1、Ubuntu18.04系统下载地址 Ubuntu18.04下载地址 直接下载桌面版 2、Ubuntu18.04安装 &#xff08;1&#xff09;打开VMware虚拟机 文件—>新建虚拟机—>选择典型 &#xff08;2&#xff09;选择稍后安装系统 &#xff08;3&#xff09;选择linux系统&#xff0c;…

学习记录:js算法(十五):三数之和

文章目录 三数之和我的思路网上思路 总结 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&…

win/mac视频剪辑软件Premiere Pro 2024下载安装

目录 一、简介 &#xff08;一&#xff09;高级调色功能 &#xff08;二&#xff09;字幕制作 &#xff08;三&#xff09;与其他 Adobe 软件的协同工作 下载 二、安装 &#xff08;一&#xff09;安装前的准备工作 &#xff08;二&#xff09;安装过程中的常见问题及解…

前端面试宝典【CSS篇】【8】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…