springboot 使用 mybatis 快速上手

创建数据库表对应的实体类

@Data
public class Template {

    private int id;

    private String name;

    private String type;

    private int productId;

    private Timestamp createTime;

    private Timestamp updateTime;

    private Timestamp deleteTime;
}

创建 TemplateMapper.java

@Mapper
public interface TemplateMapper {

    List<Template> getTemplateList(String productId);
}

创建 TemplateMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vazquez.devops.mapper.TemplateMapper">

    <resultMap id="TemplateMap" type="com.vazquez.devops.model.Template">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="type" property="type"/>
        <result column="product_id" property="productId"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="delete_ime" property="deleteTime"/>
    </resultMap>

    <select id="getTemplateList" resultMap="TemplateMap">
        select * from template where product_id = #{productId}
    </select>
</mapper>

创建 TemplateService.java

public interface TemplateService {

    Response getTemplateList(String productId);
}

创建 TemplateServiceImpl.java

@Service
public class TemplateServiceImpl implements TemplateService {

    @Autowired
    TemplateMapper templateMapper;

    @Override
    public Response getTemplateList(String productId) {
        List<Template> templateList = templateMapper.getTemplateList(productId);

        return Response.success(HttpStatus.OK.toString(), "查询所有模板成功", templateList);
    }
}

创建 TemplateController.java

@RestController
@RequestMapping("/api/template")
public class TemplateController {

    @Autowired
    TemplateService templateService;

    @GetMapping("/getTemplateList/{productId}")
    public Response getTemplateList(@PathVariable String productId) {
        return templateService.getTemplateList(productId);
    }
}

创建 mybaits 的配置文件 mybatisConf.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!--开启驼峰命名,不然会查询数据为空-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

创建统一返回对象

public class Response<T> {

    private String status;

    private String message;

    private T data;

    public Response(String status, String message, T data) {
        this.status = status;
        this.message = message;
        this.data = data;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public static <T> Response<T> success(String code, String message, T data) {
        return new Response<>(code, message, data);
    }
}

修改 application.yml

具体的 springboot 整合 mybatis 参考历史文章

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxx
    username: root
    password: xxx
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  # 全局配置文件
  config-location: classpath:mybatis/mybatisConf.xml
  # sql 映射文件
  mapper-locations: classpath:mybatis/mapper/*.xml

代码目录结构

在这里插入图片描述

效果截图

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring GA、PRE、SNAPSHOT 版本含义及区别

GA:General Availability: 正式发布的版本&#xff0c;推荐使用&#xff08;主要是稳定&#xff09;&#xff0c;与maven的releases类似&#xff1b; PRE: 预览版,内部测试版。主要是给开发人员和测试人员测试和找BUG用的&#xff0c;不建议使用&#xff1b; SNAPSHOT: 快照…

InnoDB架构:内存篇

InnoDB架构&#xff1a;内存篇 InnoDB是MySQL数据库中默认的存储引擎&#xff0c;它为数据库提供了事务安全型&#xff08;ACID兼容&#xff09;、行级锁定和外键支持等功能。InnoDB的架构设计优化了对于读取密集和写入密集型应用的性能表现&#xff0c;是一个高度优化的存储系…

# Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(四) -实现 service2 子模块。

Nacos 服务发现-Spring Cloud Alibaba 综合架构实战&#xff08;四&#xff09; -实现 service2 子模块。 1、在 service2 子模块下的 service-2-api 二级子工程中&#xff0c;定义服务接口 创建 ProviderService.java /*** C:\java-test\idea2019\nacos_discovery\nacos-mi…

Python 入门指南(二)

原文&#xff1a;zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第三章&#xff1a;迭代和做决定 “疯狂就是一遍又一遍地做同样的事情&#xff0c;却期待不同的结果。”- 阿尔伯特爱因斯坦 在上一章中&…

k8s基础入门

前言 开始学习K8S了&#xff0c;下面就是笔记整理 简介 k8s是谷歌开源得容器管理系统&#xff0c;主要功能包括 基于容器得应用部署&#xff0c;维护和滚动升级负载均衡和服务发现跨机器和跨地区得集群调度自动伸缩无状态服务和有状态服务广泛得Volume支持插件保持扩展性 …

JavaScript快速入门

目录 一、初始JavaScript 1、JavaScript是什么 2、JavaScript快速上手 3、引入方式 二、基础语法 1、变量 2、数据类型 3、运算符 三、JavaScript对象 1、数组 &#xff08;1&#xff09;数组的定义 a、使用 new 关键字创建 b、使用字面量方式创建&#xff08;常用…

byobu

byobu 终端多路复用器 一、byobu 安装二、byobu 使用三、其他终端多路复用器四、ssh byobu 远程协作 系统环境: linux(ubuntu,debian,kali) 一、byobu 安装 byobu 是包装过的tmux #sudo apt install tmux sudo apt install byobubyobu二、byobu 使用 创建窗口: Ctrl a c…

Linux应用开发笔记(五)网络编程(二)多线程编程

文章目录 前言一、线程和进程1. 进程&#xff08;Process&#xff09;2. 线程&#xff08;Thread&#xff09;3. 二者的比较 二、多线程和多进程三. 代码编写1. 相关函数pthread_create( )函数pthread_exit( )函数pthread_join( )函数 2. 线程同步3. 互斥量4. 条件变量5. 实验代…

数据结构-上三角矩阵存储方式[0知识掌握]

目标&#xff1a;看完本文章你将会了解上三角矩阵的存储方式以及矩阵中数据的位置索引号如何求 难点&#xff1a;上三角矩阵的公式推导&#xff0c;上三角任意位置对应的存储位置。 一、准备知识 1.求和公式 前n项和&#xff1a;Sn n(a1an)/2 公差&#xff1a;d后项-前项…

冯喜运:4.16中东对抗风暴下,黄金原油市场何去何从?

黄金行情走势分析&#xff1a;4小时图布林道开始收口&#xff0c;昨日下探至下轨附近&#xff0c;也是此前的起涨低点2320启稳上升&#xff0c;十字K线配合单阳拉起&#xff0c;重新去摸高上轨。目前4小时图处于摸高当中。周线和日线留意多空转换&#xff0c;摸高之后是强势延续…

GPT提示词分享 —— 解梦

&#x1f449; 对你描述的梦境进行解读。 我希望你能充当一个解梦者。我将给你描述我的梦&#xff0c;而你将根据梦中出现的符号和主题提供解释。不要提供关于梦者的个人意见或假设。只提供基于所给信息的事实性解释。 GPT3.5的回答 GPT3.5 &#x1f447; 感觉有点傻&#xf…

5.前后端分离

目录 一、前后端分离上传文件 1.在yml中设置port和localhost 2.如何使用postman测试上传文件的接口 二、如何导出excel文件 ​编辑1.在pom.xml中导包 2.在实体类中给每个字段添加注解&#xff0c;导出表格时&#xff0c;列名将会改为对应的中文 3.controller中方法的具体…

AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路

​导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 刚刚&#xff0c;李飞飞团队发布《2024年人工智能指数报告》&#xff1a;10大趋势&#xff0c;揭示AI大模型的“喜”与“忧” 摘…

origin绘图操作合集

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、图例去掉边框二、柱状图单独选中某一柱子修改颜色&#xff0c;柱状图中设置一个柱子的方法 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参…

【LatentDiffusion 代码详解(1)】LatentDiffusion 的 yaml 解读

YAML 文件提供了一种清晰、简洁且易于理解的方式来描述配置信息&#xff0c;特别适用于机器学习模型的超参数调优和实验管理。 以 Latent Diffusion 官方代码仓库中的 https://github.com/CompVis/latent-diffusion/blob/main/configs/autoencoder/autoencoder_kl_32x32x4.yam…

Spring Task 定时任务(含结合cron 表达式)

目录 一、Spring Task的介绍 二、使用方法 2.1 配置类启用定时任务支持&#xff1a; 2.2 同步定时任务 ​编辑2.3 fixedRate 可以看出不能满足我们的日常需求 那如何让其开启异步呢&#xff08;开启多个线程工作&#xff09; 三、Spring Task 结合cron表达式 3.1 corn 表…

【Linux】解决虚拟机于主机不能共享文件的问题

结论 不要使用xshell使用mobaxterm进行拖拽

2.类和对象

目录 1.类的引入 2.类的定义 3.类的访问限定符及封装 3.1访问限定符 ​编辑 ​编辑 3.2封装 4类的作用域 5.类的实例化 6.类的对象大小的计算 6.1如何计算类对象的大小 6.2类对象的存储方式猜测 6.3 结构体内存对齐规则 7.this指针 7.1this指针的引出 7.2this指针…

uniapp h5项目上传图片到oss(纯前端)

需求&#xff1a;后端给前端一个oss上传地址&#xff0c;前端需要根据getCkOSSToken获取stsToken,使用client.put方法将图片上传成功&#xff0c;并且使用canvas压缩图片 效果图 废话不多说&#xff0c;直接上代码&#xff0c;代码可直接复制&#xff0c;运行 准备工作 cnpm…

Pytorch(GPU版本)简介、安装与测试运行

目录 Pytorch简介Pytorch安装查看CUDA版本Pytorch命令安装Pytorch测试运行Pytorch简介 PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。 2…