springboot后端写接口(入门)

2023-11-09

 总结:

controller展示 定义接口路径和调用service

service  处理业务逻辑 数据库数据

mapper定义操作数据库动作,命名

mapper.xml执行mapper里定义的动作的sql语句,与数据库交互

entity 定义类,与数据库类型保持一致

https://www.bilibili.com/video/BV16541147s1?from=search&seid=14149306823192602727&spm_id_from=333.337.0.0第一步 new project

修改名字

 安装相关依赖(装少了的话后期可以自己加,不过比较麻烦)

首先勾上这个工具,方便以后用

 web

 用上数据库,勾上框的那三个

 命名

第一次下载会有点慢(防火墙可能会阻止,需要允许访问)

 (嫌弃慢的话搜索配一下阿里云的镜像,确实等了很久)

进来配置数据库信息

yml配置

 下面用户名密码数据库端口按照自己实际情况来(随便写的)

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test1?characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
   
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.test.elasticsearchdemo.domain

再次运行,分配端口

 访问空白(因为啥也没写)

建立controller包,建立类,返回一些数据(当然,现在是静态的)

 

模拟返回json格式,建立Animal类,右键——生成——构造函数/get set

 设置返回这个json对象    return new Animal("dog",5);

 成功返回

前端测试接口,因为端口的不同还是出现了跨域问题

通过@CrossOrigin解决,因为方便,但是不是很好,还是单独配置一下过滤器比较好 

 下面当然是需要用到数据库的调用,真正实战都是调用数据库的嘛

 首先建立实体类(跟数据库保持一致)

entity

package com.test.demo.entity;

public class User {
    private int id;
    private String name;
    private String password;

    public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

mapper 操作数据库动作

package com.test.demo.mapper;

import com.test.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
@Mapper
public interface UserMapper {
     // 定义操作数据库为查找所有用户
    List<User> findAll();
}

 定义查找所有的数据

建立mapper.xml(sql语句)

mapper.xml配置详解

在resource文件下

<?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">
<!-- namespace对应哪个mapper文件 -->
<mapper namespace="com.test.demo.mapper.UserMapper">
<!--    id对应mapper里面的方法名 resultType对应实体类的数据库类-->
    <select id="findAll"  resultType="com.test.demo.entity.User">
       select * from user;
    </select>
</mapper>

 service操作导出数据库数据

package com.test.demo.service;
import com.test.demo.entity.User;
import com.test.demo.mapper.UserMapper;
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> findAll(){
        return userMapper.findAll();
    }
}

mapper里面加注解@mapper

 最后controller里面设置接口

package com.test.demo.controller;

import com.test.demo.entity.User;
import com.test.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class userController {
    @Autowired
    private UserService userService;

    @CrossOrigin
    @RequestMapping("/abc")
    public Animal getName(){
        return new Animal("hml",5);
    }
    @CrossOrigin
    @RequestMapping("/abcd")
    public List<User> getUser(){
         return userService.findAll();
    }
}

效果:

 开启谷歌插件json格式化

 效果有:

前后端分离测试调用成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot后端写接口(入门) 的相关文章

  • mybaits如何防止SQL注入:mybatis的${}和#{}

    其实这个mybatis的 和 区别和使用 算是很古早很常见的一个基础问题了 先说结论 尽可能使用 不使用 因为 可以防止SQL注入 如果记不清楚 就记一句话或者是口诀 不是所有事都能靠钱能解决 号是货币符号 为什么 可以防止SQL注入 占位

随机推荐

  • Source Insight设置黑色背景

    今天使用Source Insight看C代码 觉得背景白色太亮 觉得应该可以调背景颜色 通过百度 搜索到了CSDN上的相关文章 受益良多 但是文章后面附的style文件下载需30积分 无奈囊中羞涩 只好自己按照文章的说明调颜色 首先将背景调
  • 【基于python实现UI自动化】4.1 selenium发送163邮箱邮件

    python UI自动化 1 0 selenium工具介绍 2 0 selenium环境搭建 3 Selenium的元素定位 3 0 selenium常见8大元素定位 3 1 selenium通过By定位元素 3 2 selenium通过J
  • MySQL出现:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)问题解决

    本文mysql的安装环境为win7 64位 mysql版本为MySQL5 7 问题描述 在命令行输入 mysql u root p 登录mysql 返回 Can t connect to MySQL server on localhost
  • 【不忘初心】Windows11 22000.168 X64 四合一[纯净精简版][2.77G](2021.8.29)

    此版可正常更新补丁 WIN11全新的UI界面出炉 可以说这一次Windows 11全新升级 无论是从Logo上还是UI界面设计 都有很大的变化 母版来自UUP WIN11 22000 168 为了保证稳定初心的系统全部都是离线精简和优化 非
  • MySQL常用配置详解

    目录 一 MySQL 查看配置信息 二 MySQL 查看服务器当前运行状态的信息 三 MySQL 常用配置详解 1 mysql 使用mysql命令登录数据库时的默认的设置 2 client 客户端默认设置内容 3 mysqld 服务端端配置
  • centos 6.4/redhat 6.4 安装gitlab

    为什么80 的码农都做不了架构师 gt gt gt 一 把所有包升级到最新版本 yum y upgrade 二 安装最新版ruby 2 1 5 步骤http my oschina net duolus blog 348353 三 安装官方给
  • MATLAB对RGB彩色图像进行加马赛克处理

    简单实现MATLAB对RGB彩色图像进行加马赛克处理 为了加深对图像中像素块操作的记忆 利用像素块内均值方式对RGB彩色图像进行马赛克效果的处理 为了能后比较简单得实现 所以采用了n n像素块大小的均值的方式 为了比较简单实现 这里对RGB
  • 简单算法之矩阵运算

    不多说上代码 矩阵对象 class Matrix 矩阵的宽度 private final int width 矩阵的高度 private final int height 矩阵 private final int arr Matrix in
  • 如何创建微信小程序并实现快速变现?

    工作之余做点副业增进一下自己的收入是每个技术从业人员甚至是非技术人员都很喜欢的事情 即所谓的 睡后收入 疫情几年没时间或者说没有精力 随着疫情结束 经济的急速上升 谁不想赶快充实一下自己腰包 微信小程序毋容置疑是比较好的一种方式 做好的微信
  • 语音中的响度,音调与音色的决定因素

    目录 一 先验知识 1 基波与谐波 2 基音与泛音 二 图解泛音的形成原理 生动形象的视频介绍 三 图解泛音决定音色 写在前面 响度由声源的振幅决定 音调由基波的频率决定 音色由泛音决定 一 先验知识 1 基波与谐波 基波是原合成的周期信号
  • 毕业设计-基于机器视觉的室内智能安防车系统 -STM32和 OpenCV

    目录 前言 课题背景和意义 实现技术思路 一 系统整体设计 二 智能安防车硬件系统设计 三 室内安防车自动巡逻机制的实现 四 基于 OpenCV 图像识别的火焰识别 五 分类器设计及软件实现 代码部分 实现效果图样例 最后 前言 大四是整个
  • 主成分分析法确定权重

    在数模中 确定权重方法有很多种 比如主成分分析法 层次分析法 熵权法 相关系数作为权重等 网上很多教程都是用spss计算权重 这里主要讲利用python通过主成分分析法确定权重 主成分分析法概述 主成分分析法是一种线性的降维算法 通过将N维
  • 黑莓QNX选定由延锋伟世通数字仪表项目

    锋影 e mail 174176320 qq com 黑莓有限公司宣布延锋伟世通 全球1级汽车零部件供应商 已经选择该公司的安全认证QNX平台仪器集群1一个数字仪表项目与中国的一个主要的OEM软件 该交易的条款是保密的 黑莓的QNX技术已为
  • istio安装实践

    启动minikube istio的实验环境部署在minikube上 首先启动minikube minikube安装参考上一博客 minikube start vm driver kvm2 extra config controller ma
  • 提高C++性能的编程技术笔记:引用计数+测试代码

    引用计数 reference counting 基本思想是将销毁对象的职责从客户端代码转移到对象本身 对象跟踪记录自身当前被引用的数目 在引用计数达到零时自行销毁 换句话说 对象不再被使用时自行销毁 引用计数和执行速度之间的关系是与上下文紧
  • 基于STM32实现MQTT

    最近一个项目中要用到MQTT或者CoAP 比较了两个的优缺点后 最后选择了MQTT 由于是第一次接触这个协议 在学习中遇到了不少的坑 所以分享出来 第一次写博客 有错勿怪 1 MQTT协议 MQTT Message Queuing Tele
  • springboot项目安装SSL证书实现HTTPS访问,以若依框架为例

    首先下载证书 网上有很多免费的 也可以自己购买并域名然后会对应提供证书 以腾讯云为例 下载下来的解压后如图 项目里我们操作有 1 在resource中新建cert文件 并将证书中的Tomcat文件夹中的两个文件导入到cert文件夹中 2 在
  • qt子进程和父进程读写数据通信

    进程A 例如主程序 创建了一个进程 B 这个B就称为A的子进程 而A称为B的父进程 这也称为进程间通信 有多种方式 TCP IP Local Server Socket 共享内存 D Bus Unix库 QProcess 会话管理 这里 因
  • idea插件下载

    一 请求idea 插件网站 JetBrains Marketplace 二 输入actiBPM 三 点击get 四 选择版本 下载 五 在idea 中选择 Install plugin from disk 六 选择刚刚下载插件的目录 点击O
  • springboot后端写接口(入门)

    总结 controller展示 定义接口路径和调用service service 处理业务逻辑 数据库数据 mapper定义操作数据库动作 命名 mapper xml执行mapper里定义的动作的sql语句 与数据库交互 entity 定义