bestvike --bvframe学习

ref title fetch后台api
分页属性,pagination 要差几条?pagelimit
在api中写一个饭方法,vue中用用他
vue.cinfig.js中配置别名

nacos微服务

实体类要继承basedata(封装了公共数据)

控制器autowired,getmapping(api下的文件)
反映pageinfo
dao借口继承公司的借口mapper左脚好类,类型
service,写个实现它
autowired注入dao
override

前端

①views中写一个组件:table标签中ref ,title,:fetch-api=“fetchUsers”
fetchUsers == 在data中定义==并且需要
import { fetchUsers, removeUsers, resetPass } from '@/api/authority/user'
②在api文件下authority下的user.js

import http from '@/utils/http'
export function fetchUsers(query){
  return http.get('/api/users', {
    params: query
  })
}

后端

③controller中写一个控制器SysUserController
控制器 (Controller):
使用 @RestController 注解来定义一个 RESTful 控制器。
使用 @Autowired 注解来自动注入其他组件(如服务)到控制器中。
使用 @GetMapping 注解来映射特定的 HTTP GET 请求到对应的处理方法。
通常,控制器会调用服务层的方法来处理业务逻辑,并将处理结果返回给客户端。

@RestController
public class SysUserController extends BaseController {
注入服务等:
    @Autowired
    private SysUserService sysUserService;
    @GetMapping("/api/users/all") ***调用的是前端api文件下面的js文件中的api***
    public List<SysUser> fetchAll() {
        return sysUserService.fetchAll();
    }
    @GetMapping("/api/users")
    public PageInfo<SysUser> fetch(SysUser sysUser) {
        return sysUserService.fetch(sysUser);  ***调用服务的方法***
    }

④service中写一个接口SysUserService
服务 (Service):
使用 @Service 注解来定义一个服务组件。
服务层通常包含业务逻辑,并且可以访问数据访问对象(DAO)。
服务层可以通过 @Autowired 注解来注入 DAO 层。
服务层的方法可能会被控制器调用,并且可能会返回数据或视图模型,如 PageInfo,这是一个分页信息的包装类,通常用于返回分页数据。

@Service
public interface SysUserService {
    List<SysUser> fetchAll();
    PageInfo<SysUser> fetch(SysUser sysUser);  ***接口中定义方法***
    一些方法

再写一些接口SysUserServiceImpl实现它

@Service
public class SysUserServiceImpl extends BaseService implements SysUserService {
    @Autowired                    **注入dao接口**
    private SysUserDao sysUserDao;
    @Autowired
    private SysRoleDao sysRoleDao;

    @Value("${app.authority.default-password:666666}")
    private String defaultPassword;

    @Override
    public List<SysUser> fetchAll() {
        return sysUserDao.selectAll();
    }
    @Override              ***具体实现的方法***
    public PageInfo<SysUser> fetch(SysUser sysUser) {                  
        return MybatisUtils.page(sysUser, sysUserDao, new ExampleCriteria() {
            @Override
            public void initCriteria(Example.Criteria criteria) {
                /*if (!StringUtils.isEmpty(sysUser.getDeptId())) {
                    criteria.andEqualTo("deptId", sysUser.getDeptId());
                }*/
                if (!StringUtils.isEmpty(sysUser.getDeptId())) {
                    criteria.andEqualTo("deptId", sysUser.getDeptId());
                }
                criteria.andEqualTo("status", UserStatus.NORMAL.getCode());
                if (!StringUtils.isEmpty(sysUser.getFuzzy())) {
                    criteria.andLike("id", "%" + sysUser.getFuzzy() + "%");
                    criteria.orLike("userId", "%" + sysUser.getFuzzy() + "%");
                    //criteria.orLike("avatar", "%" + fuzzy + "%");
                    criteria.orLike("name", "%" + sysUser.getFuzzy() + "%");
                } else {
                    /*if (!StringUtils.isEmpty(sysUser.getId())) {
                        criteria.andEqualTo("id", sysUser.getId());
                    }*/
                    if (!StringUtils.isEmpty(sysUser.getUserId())) {
                        criteria.andEqualTo("userId", sysUser.getUserId());
                    }
                    if (!StringUtils.isEmpty(sysUser.getName())) {
                        criteria.andLike("name", "%" + sysUser.getName() + "%");
                    }
                    if (!StringUtils.isEmpty(sysUser.getStatus())) {
                        criteria.andEqualTo("status", sysUser.getStatus());
                    }
                }
            }
        });
    }

⑤在dao中写一个SysUserDao接口
数据访问对象 (DAO):
使用 @Mapper 注解来定义一个 DAO 接口,它通常继承自某个公司或项目提供的 DAO 接口。
DAO 接口使用泛型来指定操作的实体类和返回的实体类。
DAO 接口中的方法通常用来与数据库交互,执行 CRUD 操作。
DAO 接口的实现类通常由 MyBatis 等持久层框架自动生成,这些实现类通常位于与接口同名的包中。

@Repository
public interface SysUserDao extends Mapper<SysUser> {
    Integer selectId();
    一些方法

⑥src/main/resources/mapping.oa文件下面有着许多xml文件
写一个SysUserMapper.xml,里面写了sql语句,其中id就是上面的方法

<?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.bestvike.oa.dao.SysUserDao">
    <select id="selectId" resultType="integer">
        <![CDATA[
        select IFNULL(max(cast(id as SIGNED INTEGER)), 0) + 1
        from sys_user
        ]]>
    </select>

在这里插入图片描述
⑦在data中定义实体类要继承BaseData

package com.bestvike.oa.data;

import com.bestvike.commons.entity.BaseData;
import com.bestvike.commons.utils.ConvertUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;

@Entity
public class SysAuthority extends BaseData implements Serializable {
    private  static  final long serialVersionUID = 1L;
    @Id
    private String id;
    private String roleId;
    @JsonIgnore
    private String permissions;

    @Transient
    private Map<String, List<String>> routes;

    public String getId() {
        return id;
    }

⑧在后端中resources有一个routes.json文件
里面定义了路由

[
  {
    "path": "/authority",
    "alwaysShow": true,
    "component": "Layout",
    "meta": {
      "title": "权限管理",
      "icon": "authority"
    },
    "children": [
      {
        "path": "users",
        "component": "authority/user",
        "name": "ListUser",
        "meta": {
          "title": "用户管理"
        },
        "authority": {
          "urls": [
            "GET:/api/users",
            "PUT:/api/users",
            "GET:/api/users/{id}/roles",
            "PUT:/api/users/{id}/roles",
            "PUT:/api/users/{id}/password/reset"
          ]
        }
      }, 

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

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

相关文章

【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 Java常量自动类型转换Java修饰符 Java常量 常量在程序运行时是不能被修改的。 在 Java 中使用 final 关键字来修饰常量&#xff0c;声明方式和变量类似&#xff1a; final double PI 3.1415927;自动类型转换…

大数据平台搭建2024(一)

一&#xff1a;基础配置 创建虚拟机并查出ip地址进行连接 ip a1.配置node01静态ip地址与主机名 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改或添加如下内容&#xff1a; BOOTPROTO"static" ONBOOTyes #根据虚拟机网卡信息配置 IPADDR192.168.200.141 NET…

ENVI实战—一文学会使用GLT配准工具对风云数据进行几何校正

实验2&#xff1a;学会使用GLT配准工具 目的&#xff1a;完成气象卫星数据的校正&#xff0c;掌握利用GLT配准工具实验地理配准的方法 过程&#xff1a; ①读取影像&#xff1a;选择“文件”&#xff0c;选择“HS5”文件并打开&#xff0c;在弹出的科学数据集浏览器中&#x…

秘塔和Kimi AI在资料查询和学习中的使用对比

一、引言 最近老猿在网上查资料时&#xff0c;基本上都使用Kimi AI进行查询&#xff0c;发现其查询资料后总结到位&#xff0c;知识点的准确度较高。今天早上收到一个消息&#xff0c;说新推出的秘塔AI比Kimi更新进&#xff0c;老猿利用在学习的《统计知识学习》简单对比试用了…

JS算法题:找到数组中第 k 大的元素

问题描述&#xff1a; 给定一个未排序的整数数组&#xff0c;找到其中第 k 大的元素。注意&#xff0c;你可以假设 k 总是有效的&#xff0c;且 1 ≤ k ≤ 数组的长度。 举个例子&#xff1a; 如果给定数组是 [3,2,1,5,6,4]&#xff0c;k 是 2&#xff0c;那么第 2 大的元素…

每日OJ题_BFS解决FloodFill①_力扣733. 图像渲染

目录 BFS解决FloodFill简介 力扣733. 图像渲染 解析代码 BFS解决FloodFill简介 FloodeFill算法即填充算法&#xff0c;中文&#xff1a;洪水灌溉&#xff0c;算法原理就是从一个点开始向四周扩散&#xff0c;向周围可以走到的点填充颜色&#xff0c;直到将可扩散到的点全部填…

(踩坑)Please refer to 异常和Error creating bean with name 异常

一、Please refer to 异常 如图所示&#xff0c;在使用maven构建项目的时候&#xff0c;如果提示该错误&#xff0c;则可能是xml配置文件有问题或者测试类等。但是没有明确的异常信息&#xff0c;所以做以下小改动&#xff0c;可以查看异常信息。 在IDEA工具中&#xff0c;打…

【C/C++笔试练习】read函数、虚拟存储、用户态、线程特点、缺页处理、调度算法、进程优先级、锁的使用、创建进程、不用加减乘除做加法、三角形

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;read函数&#xff08;2&#xff09;虚拟存储&#xff08;3&#xff09;用户态&#xff08;4&#xff09;线程特点&#xff08;5&#xff09;缺页处理&#xff08;6&#xff09;调度算法&#xff08;7&#xff09;进程优先…

JDK1.8新特性

JDK8新特性 ​ Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台 课程内容的介绍 了解Java发展史Lambda表达式…

数字人项目 ER-NeRF 的使用和部署详细教程

文章目录 1. ER-NeRF简介2. ER-NeRF部署3. 训练自己的数字人4. 生成数字人视频5. 其他数字人模型比较常见错误 1. ER-NeRF简介 ER-NeRF&#xff08;官方链接&#xff09;是一个Talking Portrait Synthesis&#xff08;对嘴型&#xff09;项目。即&#xff1a;给一段某人说话的…

微信小程序-长按显示,点击空白区域关闭

<view bind:tap"closeLongAction"><view bind:longpress"openAction></view><view wx:if"{{longActionIsShow}}"> 长按显示的区域 </view> </view>openAction(e) {console.log(322,e);this.setData({longActionI…

【解读】《中华人民共和国网络安全法》:所有IT从业者都应知应懂

随着网络的快速发展&#xff0c;当今社会存在的网络安全问题也是接踵而来&#xff1a;网络入侵、网络攻击等非法活动威胁信息安全&#xff1b;非法获取公民信息、侵犯知识产权、损害公民合法利益&#xff1b;宣扬恐怖主义、极端主义&#xff0c;严重危害国家安全和社会公共利益…

IDM2024破解版 IDM软件破解注册序列号 idm教程 idm序列激活永久授权 Internet Download Manager网络下载加速神器

你是不是感觉下载东西资源的时候&#xff0c;下载的非常慢&#xff0c;即便是五十兆的光纤依旧慢、是不是想下载网页上的视频但不知如何进行下载……这些问题是否一直在困扰着您&#xff0c;今日小编特意我大家带来了这款IDM 2024破解版。 众所周知&#xff0c;IDM是一款功能强…

openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置

文章目录 openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置264.1 恢复BIOS出厂设置264.2 修改相关BIOS设置264.3 重启操作系统 openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置 本章节主要介绍openGauss数据库内核基于鲲鹏服务…

redis五种类型介绍

Redis是一种内存数据存储系统&#xff0c;它支持五种不同的数据类型&#xff1a; 1. String String是Redis中最基本的数据类型&#xff0c;它可以存储任何形式的字符串数据&#xff0c;例如普通的文本字符串&#xff0c;二进制数据或JSON格式的数据。除此之外&#xff0c;还可以…

LD3320语音模块开发以及未来拿到其他模块的开发方式

当我们拿到一块模块进行开发的时候&#xff0c;一定要拿到配套的使用手册&#xff0c;不然在短时间内根本下不了手 一、使用source Insight来阅读源码 1.建立文件夹 2. 在source Insight放入该文件 3.添加源码 4.解决Source Insight乱码的问题 5.让各个代码模块之间有关联 二、…

动态IP代理API是什么?怎么用?

“动态”意味着每次连接或每隔一段时间&#xff0c;用户的IP地址都会发生改变。由于IP地址的不断变化&#xff0c;用户可以避免因频繁访问同一网站而导致的IP被封锁的问题。API叫做应用程序接口&#xff0c;是一种让软件之间相互通信的接口。API允许用户通过编程方式来调用动态…

mPEG-Succinamide Acid能够作为连接分子,将不同的生物分子偶联在一起,从而构建生物偶联物聚乙二醇衍生物

【试剂详情】 英文名称 mPEG-SAA&#xff0c;mPEG-Succinamide Acid&#xff0c; Methoxy PEG SAA 中文名称 聚乙二醇单甲醚酰胺丁二酸 外观性状 由分子量决定&#xff0c;粘性液体或者固体 分子量 400&#xff0c;600&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&…

【Android】Activity task和Instrumentation杂谈

文章目录 activity taskInstrumentation机制参考 Android不仅可以装载众多的系统组件&#xff0c;还可以将它们跨进程组成ActivityTask&#xff0c;这个特性使得每个应用都不是孤立的。 activity task 从数据结构角度看&#xff0c;Task有先后之分&#xff0c;源码实现上采取了…

类的加载,反射和注解详解

文章目录 类的加载概述类加载器作用分类获取类加载器的方式 双亲委派机制3种加载器的关系工作机制 类加载器的应用 反射概述关键获取类对象获取构造器对象获取方法对象获取成员变量对象作用 注解概述作用自定义注解格式属性类型 元注解常见的元注解 注解解析概述方法技巧 类的加…