mybatis-plus实操

如何生成完全看项目,有的人是用管理系统生成,还有其他人可能是.....。博主这里是用插件生成

我是插件的话,先在ide连接上数据源,然后对表右键,直接来到下面这个步骤,

第一次是新增6个文件,我们写接口,第一次是要动六个文件的,第一个是Controller层,第二个是Service接口(注册方法给Controller调用的),第三个是ServiceImpl实现类,第四个是实体类,对应数据库表(可以当作前端接受参数类型),第五个是Mapper.xml文件,在xml文件后面要写sql查询的,第六个是Mapper.java文件(在这里写@DS('数据源名称'),这里的方法名称与xml文件的sql对应的id

 再进行下面选择 ,注意项目用的mybatis版本

然后会生成下面这些

 resources下的xml根据你的application.ym里面的  mybatis-plus 的 mapper-locations(xml 扫描路径)来放,我这边是resources的mapper,实体类路径就是 type-aliases-package

 注意修改BchzdtMapper.xml的  namespace  和  type  ,namespace 的路径是另一个跟xml同命的java文件,type就是数据库的实体类。

接下来进入实操练习吧,写一个接口,前端传编号和日期。都是必填参数

controller控制层

package com.yupi.controller;import com.yupi.entity.Bchzdt;
import com.yupi.entity.FebsResponse;
import com.yupi.service.BchzdtService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;import java.util.Date;
import java.util.List;/*** 管理控制器*/
@RestController
@RequestMapping("/api/bchzdt")
public class BchzdtController {@Autowiredprivate BchzdtService bchzdtService;/*** 根据编号和日期查询交接班记录* @param ksbh 编号,不能为空* @param date 查询日期,格式:yyyy-MM-dd HH:mm:ss,不能为空* @return 查询结果*/@GetMapping("/query")public FebsResponse queryByKsbh(@RequestParam(required = true) Long ksbh,@RequestParam(required = true) @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {if (ksbh == null) {return new FebsResponse().fail().message("编号不能为空");}if (date == null) {return new FebsResponse().fail().message("查询日期不能为空");}try {List<Bchzdt> bchzdtList = bchzdtService.findByKsbhAndDate(ksbh, date);return new FebsResponse().success().data(bchzdtList).message("查询成功");} catch (Exception e) {return new FebsResponse().fail().message("查询失败:" + e.getMessage());}}
}

BchzdtService.java  实现类的接口

package com.yupi.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.entity.Bchzdt;import java.util.Date;
import java.util.List;/**
* @author
* @description 针对表【BCHZDT】的数据库操作Service
* @createDate 2025-05-14 16:08:19
*/
public interface BchzdtService extends IService<Bchzdt> {/*** 根据编号和日期查询记录* @param ksbh 编号* @param date 查询日期* @return 记录列表*/List<Bchzdt> findByKsbhAndDate(Long ksbh, Date date);
}

实现类  BchzdtServiceImpl.java

package com.yupi.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yupi.entity.Bchzdt;
import com.yupi.mapper.BchzdtMapper;
import com.yupi.service.BchzdtService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.Date;
import java.util.List;/**
* @author 
* @description 针对表【BCHZDT】的数据库操作Service实现
* @createDate 2025-05-14 16:08:19
*/
@Service
public class BchzdtServiceImpl extends ServiceImpl<BchzdtMapper, Bchzdt>implements BchzdtService {@Autowiredprivate BchzdtMapper bchzdtMapper;/*** 根据编号和日期查询记录* @param ksbh 编号* @param date 查询日期* @return 记录列表*/@Overridepublic List<Bchzdt> findByKsbhAndDate(Long ksbh, Date date) {return bchzdtMapper.findByKsbhAndDate(ksbh, date);}
}

BchzdtMapper.xml

package com.yupi.mapper;import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yupi.entity.Bchzdt;
import org.apache.ibatis.annotations.Param;import java.util.Date;
import java.util.List;/**
* @author 
* @description 针对表【BCHZDT】的数据库操作Mapper
* @createDate 2025-05-14 16:08:19
* @Entity generator.entity.Bchzdt
*/
@DS("emr") // 指定使用emr数据源
public interface BchzdtMapper extends BaseMapper<Bchzdt> {/*** 根据编号和日期查询记录* @param ksbh 编号* @param date 查询日期* @return 记录列表*/List<Bchzdt> findByKsbhAndDate(@Param("ksbh") Long ksbh, @Param("date") Date date);
}
mybatis操作数据库的方式
查询方式是否推荐适用场景
XML SQL 定义推荐复杂查询、性能优化
注解 SQL推荐简单查询
LambdaQueryWrapper推荐类型安全、链式调用
QueryWrapper推荐动态字段
自定义 SQL推荐复杂业务逻辑
Stream 过滤不推荐小数据量时可用
分页查询推荐分页展示
聚合函数 推荐统计、计算
动态 SQL 推荐条件组合
多表查询推荐关联数据查询

最后在BchzdtMapper.xml添加sql查询语句

<!-- 根据编号和日期查询记录 --><select id="findByKsbhAndDate" resultMap="BaseResultMap">SELECT<include refid="Base_Column_List"/>FROM BCHZDTWHERE KSBH = #{ksbh}AND TRUNC(CREATE_TIME) = TRUNC(#{date})<if test="true">AND IS_DELETE = 0</if>ORDER BY CREATE_TIME DESC</select>

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

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

相关文章

Mergekit——任务向量合并算法Ties解析

Mergekit——高频合并算法 TIES解析 Ties背景Ties 核心思想具体流程总结 mergekit项目地址 Mergekit提供模型合并方法可以概况为三大类&#xff1a;基本线性加权、基于球面插值、基于任务向量&#xff0c;今天我们来刷下基于任务向量的ties合并方法&#xff0c;熟悉原理和代码。…

YOLOv8 在单片机上部署的缺点和应对方案

YOLOv8 在单片机上部署的主要挑战与缺陷 将 YOLOv8 部署到单片机上确实面临诸多技术挑战&#xff0c;主要源于单片机有限的计算资源与 YOLOv8 模型的高复杂度之间的矛盾。以下是具体的缺陷和限制&#xff1a; 1. 计算资源严重不足 算力限制&#xff1a;典型单片机&#xff0…

搭建一个永久免费的博客

搭建永久免费的博客&#xff08;1&#xff09;基本介绍 HugoStackGitHub GitHub GitHub GitHub Build and ship software on a single, collaborative platform GitHub 下载安装git Git - Downloads Edge插件authenticator 2fa client Settings->Password and auth…

基于SpringBoot的小型民营加油站管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

推荐一个Winform开源的UI工具包

从零学习构建一个完整的系统 推荐一个开源、免费的适合.NET WinForms 控件的套件。 项目简介 Krypton是一套开源的.Net组件&#xff0c;用于快速构建具有丰富UI交互的WinForms应用程序。 丰富的UI控件&#xff0c;提供了48个基础控件&#xff0c;如按钮、文本框、标签、下拉…

社交平台推出IP关联机制:增强用户体验与网络安全的新举措

社交平台为我们提供与亲朋好友保持联系、分享生活点滴的便捷渠道&#xff0c;还成为了信息传播、观点交流的重要平台。然而&#xff0c;随着社交平台的普及&#xff0c;网络空间中的虚假信息、恶意行为等问题也日益凸显。为了应对这些挑战&#xff0c;许多社交平台相继推出IP关…

系统架构设计(八):三层架构

什么是三层架构&#xff08;Three-Tier Architecture&#xff09; 三层架构是将系统分为三大逻辑层&#xff1a;表示层&#xff08;Presentation&#xff09;、业务逻辑层&#xff08;Business Logic&#xff09;、数据访问层&#xff08;Data Access&#xff09;&#xff0c;…

C语法备注01

&#xff08;1&#xff09;char 字符类 char 既可以是 整数 类型&#xff0c;也可以是 字符 类型。z字符 类型可以转化为对应的ASC2值。 int main(){char c;char e;c 1;char d 1;e A;printf("c %d\n", c);printf("d %d\n", d);printf("e %d\n…

CVE-2015-2183 Zeuscart SQL注入漏洞

CVE-2015-2183 Zeuscart SQL注入漏洞 主页 访问/admin/进行登录 访问&#xff1a;http://192.168.1.3/admin/?doeditcurrency&cid1 单引号测试&#xff0c;发现页面发生变化&#xff0c;进一步测试 order by 5 &#xff0c;页面正常&#xff0c;order by 6时页面发生变…

Go 语言即时通讯系统开发日志-日志day2-5:架构设计与日志封装

Go语言即时通讯系统开发日志day2 计划&#xff1a;学习go中MySQL&#xff0c;Redis的使用&#xff0c;使用MySQL和Redis完成一个单聊demo。 总结&#xff1a;现在每天下午用来开发这个项目&#xff0c;如果有课的话可能学习时间只有3-4个小时&#xff0c;再加上今天的学习效率不…

对盒模型的理解

对CSS盒模型的深入理解 CSS盒模型是网页布局的基础概念&#xff0c;它描述了HTML元素在页面中所占的空间以及如何计算这些空间。以下是关于盒模型的全面解析&#xff1a; 1. 盒模型的基本组成 每个HTML元素都被视为一个矩形的盒子&#xff0c;这个盒子由内到外由四部分组成&…

RV1126多线程获取SMARTP的GOP模式数据和普通GOP模式数据

通过代码的方式同时获取SMARTP模式的VENC码流数据和普通GOP模式的VENC码流数据&#xff0c;并进行对比画质。 一.RV1126 VI采集摄像头数据并同时编码SMARTP模式和普通GOP模式的编码码流流程 RV1126利用多线程同时获取普通GOP的VENC码流数据和SMARTP的码流数据一般如上图&#…

在Ubuntu使用 Ansible 配置 Azure 资源的动态清单

使用 Ansible 配置 Azure 资源的动态清单 简介1.安装pipx2.通过 pipx 安装 Ansible3.安装azure.azcollection4.安装集合所需的依赖项5.生成动态库存 简介 在主机变化不定的云环境中&#xff0c;Ansible 的动态清单功能可以消除维护静态清单文件的负担 本教程将带你使用 Azure…

车载诊断架构 ---车载总线对于功能寻址的处理策略

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

Github 2025-05-16 Java开源项目日报 Top9

根据Github Trendings的统计,今日(2025-05-16统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9Netty:异步事件驱动的网络应用程序框架 创建周期:5043 天开发语言:Java协议类型:Apache License 2.0Star数量:33219 个Fork数量:…

大语言模型(LLM)如何通过“思考时间”(即推理时的计算资源)提升推理能力

大语言模型(LLM)如何通过“思考时间”(即推理时的计算资源)提升推理能力 核心围绕人类思维机制、模型架构改进、训练方法优化等展开 一、人类思维的启发:快思考与慢思考 类比心理学: 人类思维分两种模式: 快思考(系统1):直觉驱动,快速但易出错(如估算简单问题)。…

【ubuntu24.04】pycharm 死机结束进程

windows 远程pycharm到ubuntu执行程序 pycharm 在调试过程中&#xff0c;内存耗尽&#xff0c;然后死机了 pycharm 进程 (base) rootk8s-master-pfsrv:/home/zhangbin/下载# ps -ef | grep pycharm root 121245 3230568 0 5月14 pts/8 00:00:00 /bin/bash --rcfile …

从虚拟仿真到行业实训再到具身智能--华清远见嵌入式物联网人工智能全链路教学方案

2025年5月23-25日&#xff0c;第63届中国高等教育博览会&#xff08;高博会&#xff09;将在长春中铁东北亚国际博览中心举办。作为国内高等教育领域规模大、影响力广的综合性展会&#xff0c;高博会始终聚焦教育科技前沿&#xff0c;吸引全国高校管理者、一线教师、教育科技企…

本地部署dify+ragflow+deepseek ,结合小模型实现故障预测,并结合本地知识库和大模型给出维修建议

1.准备工作 使用ollama 拉取deepseek-r1:7b 官网下载ollama ollama run deepseek-r1:7b ollama list Ragflow专注于构建基于检索增强生成&#xff08;RAG&#xff09;的工作流&#xff0c;强调模块化和轻量化&#xff0c;适合处理复杂文档格式和需要高精度检索的场景。Dify…

https://api.ipify.org/?format=json 不好使

https://api.ipify.org/?formatjson 打不开&#xff0c;用下面新地址 https://api64.ipify.org/?formatjson