当前位置: 首页 > news >正文

4.后端·新建子模块与开发(传统模式)

文章目录

  • 学习资料
  • 新建子模块与各层
  • 查询entity的列表
    • entity
    • mapper层
    • service层
    • controller层
  • 测试

学习资料

https://www.bilibili.com/video/BV13g411Y7GS?p=8&spm_id_from=pageDriver&vd_source=ed09a620bf87401694f763818a31c91e b站的学习视频

新建子模块与各层

在run起来若依框架之后,可以新建自己的java项目的子模块,进行编码开发,无缝接入若依框架。利用ide新建一个module,如下图:
在这里插入图片描述
下一步,注意选择maven格式的模块,并且不要用maven的骨架。
在这里插入图片描述
然后输入新建模块的名字,注意gav在选择parent之后,一般都是沿用的不用改,如下图。
在这里插入图片描述
创建完成之后,目录结构如下图所示:
在这里插入图片描述
新建数据库的entity的映射的java类,注意路径,可以参考一下system模块的,创建自己的正确路径的java类,这里有一个spring 扫描的问题,所以要遵循若依的标准。注意:自己不能随便整包名!
在这里插入图片描述
创建mapper层,如下图:
在这里插入图片描述
有了mapper接口,就要写mapper的xml文件了,这里有映射规则和路径规则,如下图:
在这里插入图片描述
遵循规则,如下图建立xml文件。建立java到xml的映射。
在这里插入图片描述
建立业务层,创建接口与实现类,如下图所示,注意遵循包名的命名规则。
在这里插入图片描述

查询entity的列表

entity

首先,需要继承baseEntity,有默认的6个字段。这个类在common包下,需要去pom文件解决一下引用的问题。
在这里插入图片描述
pom文件,增加common模块的引用。这样这个类就可以被使用了。
在这里插入图片描述
然后去java实体类中,建立数据库的字段映射。getset方法,以及tostring。(后续可以用lombok)
在这里插入图片描述

mapper层

在mapper接口中,声明这个方法,并且使用mybatisx插件,生成xml文件中的对应的内容。
在这里插入图片描述
xml文件中,一般现有一个resultmap将数据库字段与java类的属性做一个映射。如下图:
在这里插入图片描述

界面返回值,一般是vo的list集合,vo在xml中也有体现。
在这里插入图片描述

条件查询的时候,传入的条件,都是可选的,在xml中可以有这种片段。如下图。
在这里插入图片描述

service层

在接口类中声明方法,如下图:
在这里插入图片描述
在实现类中,实现具体的逻辑。
在这里插入图片描述

controller层

若依框架的特色,就是所有的controller都是在admin包里面,其它三层在各子模块里面,所以在admin包下新建这个controller。
在这里插入图片描述
继承basecontroller,不继承会找不到分页的功能。
在这里插入图片描述

配置路由注解与restcontroller注解。
在这里插入图片描述

编写访问列表的方法,注意配置权限与访问路由。
在这里插入图片描述

测试

在admin包下进行测试。新建test目录结构,并且在admin的pom中增加test的依赖,如下图:
在这里插入图片描述
然后添加子模块的依赖,这样才能访问service方法。
在这里插入图片描述

新建测试类,注意,这里的测试类的路径有说法,需要能被springboot的启动包,扫描到,在本项目中,就是com.ruoyi.web,如下图:
在这里插入图片描述
进行编码测试,如下:
在这里插入图片描述
方法的左侧,可以进行测试,快捷。输入内容如下,就实现了条件查询。
在这里插入图片描述

相关文章:

4.后端·新建子模块与开发(传统模式)

文章目录 学习资料新建子模块与各层查询entity的列表entitymapper层service层controller层 测试 学习资料 https://www.bilibili.com/video/BV13g411Y7GS?p8&spm_id_frompageDriver&vd_sourceed09a620bf87401694f763818a31c91e b站的学习视频 新建子模块与各层 在r…...

.netcore 连接 apache doris

apache doris 兼容mysql协议&#xff1b;所以我们在.netcore项目中&#xff0c;可以使用Mysql的驱动 dotnet add package MySqlConnector 测试代码&#xff1a; [HttpGet]public async Task<string> Get2(){//打开连接await using var connection new MySqlConnectio…...

【C语言】探讨常见自定义类型的存储形式

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 &#x1f525;该文章将探讨结构体&#xff0c;位段&#xff0c;共用体的存储形式。 目录&#xff1a; &#x1f30d;结构体内存对齐✉…...

NLP(六十九)智能文档问答助手升级

本文在笔者之前研发的大模型智能文档问答项目中&#xff0c;开发更进一步&#xff0c;支持多种类型文档和URL链接&#xff0c;支持多种大模型接入&#xff0c;且使用更方便、高效。 项目介绍 在文章NLP&#xff08;六十一&#xff09;使用Baichuan-13B-Chat模型构建智能文档中…...

如何使用SQL系列 之 如何在MySQL中使用索引

引言 关系数据库可用于处理任何大小的数据&#xff0c;包括包含数百万行的大型数据库。结构化查询语言(SQL)提供了一种基于特定条件在数据库表中查找特定行的简洁而直接的方法。随着数据库变得越来越大&#xff0c;在其中找到特定的行变得越来越困难&#xff0c;就像大海捞针一…...

数字孪生相关政策梳理,重点对各行业版块的指导和引领

前言 数字孪生技术作为新型智慧城市建设的创新引领性技术&#xff0c;有利于打造孪生城市运行空间&#xff0c;强化城市大脑基础能力&#xff0c;实现全域时空数据融合。数字孪生技术在推动智慧城市建设方面的作用已越来越受到重视。2021年3月&#xff0c;《国家“十四五”规划…...

nios里面打开eclipse遇到Unresolved inclusion: “system.h“等问题

问题&#xff1a;在Nios中打开软核部分代码时&#xff0c;遇到一堆Unresolved inclusion: "system.h"等问题报错 原因&#xff1a;bsp文件和软核没关联&#xff0c;导致找不到头文件地址&#xff0c;关联一下就好 解决步骤&#xff1a; 右键bsp文件&#xff0c;点击…...

C#,数值计算——伽马微分(Gammadev)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Gammadev : Normaldev { private double alph { get; set; } private double oalph { get; set; } private double bet { get; set; } private double a1 { g…...

【UE5 智慧城市系列】5-通过鼠标键盘控制摄像机

目标 通过鼠标WASD键控制摄像机前后左右移动&#xff0c;鼠标滚轮控制弹簧臂长度的修改&#xff0c;鼠标中键控制摄像机旋转。 步骤 1. 首先创建一个游戏模式&#xff0c;这里命名为“BP_GameMode” 2. 再创建一个玩家控制器&#xff0c;这里命名为“BP_PlayerController” …...

工作纪实38-ES分页数据问题

之前分页查询有接ES&#xff0c;随着系统使用时间数据量不断增加&#xff0c;会有如下报错。关键信息就是 Result window is too large, from size must be less than or equal to: [10000] but was [100001] 当索引非常非常大(千万或亿)&#xff0c;是无法按照from size做深…...

设计模式之访问器模式(Visitor)的C++实现

1、访问器模式的提出 在软件开发过程中&#xff0c;早已发布的软件版本&#xff0c;由于需求的变化&#xff0c;需要给某个类层次结构增加新的方法。如果在该基类和子类中都添加新的行为方法&#xff0c;将给代码原有的结构带来破坏&#xff0c;同时&#xff0c;也违反了修改封…...

Python之OS模块

os模块负责程序与操作系统的交互&#xff0c;提供了访问操作系统底层的接口;即os模块提供了非常丰富的方法用来处理文件和目录。 使用的时候需要导入该模块:import os...

vue 使用canvas 详细教程

Vue.js 中使用 Canvas Vue.js 是一个流行的 JavaScript 框架&#xff0c;用于构建用户界面。它提供了一种简洁的方式来管理和渲染数据&#xff0c;同时也支持与其他库和工具的集成。要在 Vue.js 中使用 Canvas&#xff0c;您可以按照以下步骤进行操作&#xff1a; 在 Vue.js …...

Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】

文章目录 一、Git简介二、Git的下载安装三、Git常规命令四、新建本地仓库五、本地分支操作六、Git远程仓库七、远程仓库克隆、抓取和拉取八、总结九、学习交流 一、Git简介 Git是分布式版本控制系统&#xff08;Distributed Version Control System&#xff0c;简称 DVCS&…...

FPGA开发

https://www.enclustra.com.cn/?bd_vid11435475462206745180 https://www.monolithicpower.cn/design-tools/design-tools/llc-design-tool.html https://www.elecfans.com/article/88/143/2012/20120718280641_2.html...

js手撕代码

1、实现instanceof运算符 instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上&#xff0c;运算符左侧是实例对象&#xff0c;右侧是构造函数。 const isInstanceof function(left,right){let proto Object.getPrototypeOf(left);while(true…...

typecho反序列化

typecho反序列化 环境的搭建 漏洞复现前提 <?php class Typecho_Feed {const RSS1 RSS 1.0;const RSS2 RSS 2.0;const ATOM1 ATOM 1.0;const DATE_RFC822 r;const DATE_W3CDTF c;const EOL "\n";private $_type;private $_items;public function __const…...

php程序设计的基本原则

单一职责原则&#xff08;SRP&#xff09;&#xff1a;一个类应该只有一个原因引起变化&#xff0c;即一个类应该只负责一项职责。 class User {private $name;private $email;public function __construct($name, $email) {$this->name $name;$this->email $email;}p…...

python execute() 使用%s 拼接sql 避免sql注入攻击 好于.format

1 execute(参数一:sql 语句) # 锁定当前查询结果行 cursor.execute("SELECT high, low, vol FROM table_name WHERE symbol %s FOR UPDATE;"% (symbol,)) 2 .format() cursor.execute("SELECT high, low, vol FROM table_name WHERE symbol {} FOR UPDATE;…...

RPC项目解析(1)

分布式通信框架&#xff1a;让远程方法调用和调用进程内方法一样简单 RPC通信原理 rpc&#xff1a;远程过程调用&#xff08;远程能够调用其他模块的方法&#xff09; 在rpc中需要发送时候&#xff0c;对发送的信息进行序列化&#xff0c;在服务端对接收到的信息进行反序列化…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...

SQL进阶之旅 Day 22:批处理与游标优化

【SQL进阶之旅 Day 22】批处理与游标优化 文章简述&#xff08;300字左右&#xff09; 在数据库开发中&#xff0c;面对大量数据的处理任务时&#xff0c;单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”&#xff0c;深入探讨如何通过批量操作和游标技术提…...