05 动力云客之分页查询用户 + 查询用户详情 + 新增用户

1. 用户列表分页查询实现

核心

  1. 使用pageHelper实现分页
    @GetMapping(value = "api/users")
    //分页的参数可以不传, 不传就默认设置为1
    public R userPage(@RequestParam(value = "current", required = false) Integer current) {
        if (current == null) {
            current = 1;
        }

        PageInfo<TUser> pageInfo = userService.getUserByPage(current);
        return R.OK(pageInfo);
    }
    PageInfo<TUser> getUserByPage(Integer current);


   //用户列表分页查询实现
    @Override
    public PageInfo<TUser> getUserByPage(Integer current) {
    		 //每个方法前用startPage设置一下分页参数
        PageHelper.startPage(current, Constants.PAGE_SIZE);

        List<TUser> list =  tUserMapper.selectUserByPage();

        //用户对象封装到list , list进一步封装到PageInfo里并返回
        //pageInfo可以获得一些分页参数,如总页数、总记录数、当前页数
        PageInfo<TUser> tUserPageInfo = new PageInfo<>(list);

        return tUserPageInfo;
    }
	  <select id="selectUserByPage" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from dlyk.t_user
    </select>

2. 查询用户详情

核心:

  1. 将这个用户在表中的所有字段展示出来(密码除外)

  2. 相应地带来第二个问题, 如果只是简单查询一次用户表, 只能得到创建人, 编辑人的id, 这当然不合理 , 我们想要直接看到创建人的姓名. 这就需要多表一对一查询.
    在这里插入图片描述

2.1 先获得所有信息

    //查询用户详情, 路径传参
    @GetMapping(value = "api/user/{id}")
    public R userDetail(@PathVariable(value = "id") Integer id) {
        TUser tUser = userService.getUserById(id);

        return R.OK(tUser);
    }
    TUser getUserById(Integer id);


		@Override
    public TUser getUserById(Integer id) {
        return tUserMapper.selectByPrimaryKey(id);
    }

这个方法已经自动生成好了, mapper接口和mapperxml都已经有了

    TUser selectByPrimaryKey(Integer id);

2.2 解决一对一映射

既然MB生成的mapper接口方法和mapperxml无法实现需求, 就手动写

  1. 修改UserServiceImpl中的mapper接口方法调用
		@Override
    public TUser getUserById(Integer id) {
    		 //selectDetailById是自定义的方法
        return tUserMapper.selectDetailById(id);
    }
  1. mapper接口和mapperxml
    <select id="selectDetailById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
        <!--@mbg.generated-->
        select
        tu.*,
        tu2.id createById, tu2.name createByName,
        tu3.id editById, tu3.name editByName
<!--    一(user)对一(user), 只知道创建人的id, 要查创建人的姓名, 当然还是要从user表中查
                一-->
        from dlyk.t_user tu left join dlyk.t_user tu2 on tu.create_by = tu2.id
                            left join dlyk.t_user tu3 on tu.edit_by = tu3.id
        where id = #{id,jdbcType=INTEGER}
    </select>

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

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

相关文章

数据服务安全的重要性

数据服务安全在当今信息化社会显得尤为重要。随着大数据、云计算、人工智能等技术的飞速发展&#xff0c;数据已经成为企业和组织的核心资产&#xff0c;数据服务安全也面临着前所未有的挑战。本文将从数据服务安全的重要性、常见威胁、防护策略以及未来发展趋势等方面进行探讨…

chatgpt帮忙看代码瞬间不难受了

目标&#xff1a;初步熟悉下mysql启动流程逻辑、熟悉下mysql增删改查逻辑 材料&#xff1a; 下载个源码包&#xff1a;MySQL :: Download MySQL Community Server安装个visual studio code 软件用来看代码chatgpt 开始&#xff1a; ##怎么容易怎么来&#xff1a;先查查网上别…

Qt篇——QTableWidget保存表格数据到Excel文件中,读Excel内容到QTableWidget

表格和excel例子如下图所示&#xff1a; 一、QTableWidget保存表格数据到Excel文件中 代码如下&#xff1a; &#xff08;pro文件中添加QT axcontainer&#xff09; #include <QAxObject>void MainWindow::saveTableToExcel() {QDateTime current_date_time QDateTi…

SpringBoot:Invalid bound statement (not found)的原因和解决方案

&#x1f413; 报错信息&#xff1a; &#xff08;无效绑定声明&#xff09;找不到 解析&#xff1a; 你的mapper实例对象和对应的mapper.xml对象未找到 &#x1f413; 排查&#xff1a; 情况一&#xff1a; 1.排除相对应的mapper实例对象路径是否正确 查看相对应的mapper中…

MIND解读

这篇paper的核心是胶囊网络&#xff0c;该网络采用了动态路由算法自动对用户历史行为序列进行聚类&#xff0c;提取出多个兴趣向量&#xff0c;代表用户的不同兴趣。当用户再有新的交互时&#xff0c;通过胶囊网络&#xff0c;还能实时的改变用户的兴趣表示向量&#xff0c;做到…

前后端项目-part02

文章目录 4 课程分类树4.1 需求展示4.2 后端开发4.2.1 添加工具类4.2.2 添加依赖4.2.3 创建实体类4.2.4 创建Mapper4.2.5 创建Service4.2.6 创建Controller4.2.7创建启动类4.2.8创建yml文件4.2.9测试4.3 前端开发4.3.1 树形控件测试4.3.2 替换测试数据4.4 利用ThreadLocal实现共…

腾讯云服务器4核8G性能,和阿里云比怎么样?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

实现unity场景切换

本文实现两个按键实现场景1和场景2之间的切换 ①首先在unity 3D中创建两个场景&#xff0c;分别为Scene1和Scene2 ②在Scene1中创建一个Button&#xff0c;修改txt内容为“To Scene2”&#xff0c;并在Buttons下创建一个空物体&#xff0c;用于挂载脚本。 脚本Trans Scene.…

ElasticSearch之找到乔丹的空中大灌篮电影

写在前面 本文看一个搜索的实际例子&#xff0c;找到篮球之神乔丹的电影Space Jam&#xff0c;即空中大灌篮。 正式开始之前先来看下要查询的目标文档&#xff0c;以及查询的text&#xff1a; 要查询的目标文档 {..."title": "Space Jam",..."ove…

顶顶通呼叫中心中间件-如何使处于机器人话术中的通话手动转接到坐席分机上讲解(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件使用httpapi实现电话转接操作过程讲解(mod_cti基于FreeSWITCH) 需要了解呼叫中心中间件可以点以下链接了解顶顶通小孙 1、使用httpapi接口转接 一、打开web版的ccadmin并且找到接口测试 打开web-ccadmin并且登录&#xff0c;登录完成之后点击运维调试-再…

5G-A,未来已来

目前&#xff0c;全国首个5G-A规模组网示范完成。这项由北京联通携手华为共同打造的示范项目&#xff0c;实现了北京市中心金融街、历史建筑长话大楼、大型综合性体育场北京工人体育场三个重点场景的连片覆盖。 实际路测结果显示&#xff0c;5G-A用户下行峰值速率达到10Gbps&am…

力扣5. 最长回文子串(双指针、动态规划)

Problem: 5. 最长回文子串 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1&#xff1a;双指针 1.我们利用双指针从中间向两边扩散来判断是否为回文串&#xff0c;则关键是找到以s[i]为中心的回文串&#xff1b; 2.我们编写一个函数string palindrome(string &s, in…

WPF的DataGrid自动生成中文列头

直接将一个对象集合绑定到DataGrid上面&#xff0c;设置自动生成列AutoGenerateColumns"True"&#xff0c;DataGrid会自动根据对象类的属性生成对应的列 示例类对象&#xff1a; public class DataModel{public int Id { get; set; }public string Name { get; set;…

vue3第三节(v-model 执行原理)

特殊说明&#xff1a; 以下vue3语法是基于 3.4之前版本进行使用的&#xff0c;3.4之后的版本 引入了 defineModel 宏&#xff0c;后续会介绍defineModel 1、vue3 与vue2 中v-model区别 vue3 中v-model绑定的不再是value&#xff0c;而是modelValue&#xff0c;接收的方法也不再…

Flink CDC 提取记录变更时间作为事件时间和 Hudi 表的 precombine.field 以及1970-01-01 取值问题

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

windows系统使用Vscode在WSL调试golang本地进程

背景&#xff1a; windows10企业版 vscodegolang1.20 wsl编译运行。 vscode 使用本地wsl进行进程attach操作&#xff0c;发现&#xff1a;Access is denied. 本地进程启动&#xff0c;vscode调试进程。windows-Linux控制台: Starting: C:\Users\book\go\bin\dlv.exe dap --l…

node.js 用 xml2js.Parser 读 Freeplane.mm文件,生成测试用例.csv文件

Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#xff0c;比如数学公式、节点属性面板等。 编写 mm_xml2js_csv.js 如下 // 用 xml2js.Parser 读 F…

ROS开发基础-Linux基础第四部(开发板设置本地IP)

一 、网线连接设备 使用网线连接jetson NX与机械臂&#xff0c;如下图所示&#xff1a; 二、 修改上位机IPV4 IP ①测试是否可连接。网线连接机械臂之后&#xff0c;在桌面打开终端输入命令“ping 192.168.1.18”,如不可正常通信&#xff0c;可按照下述步骤进行设置。 ②在U…

Vue3前端实现一个本地消息队列(MQ), 让消息延迟消费或者做缓存

MQ功能实现的具体代码(TsMQ.ts)&#xff1a; import { v4 as uuidx } from uuid;import emitter from /utils/mitt// 消息类 class Message {// 过期时间&#xff0c;0表示马上就消费exp: number;// 消费标识&#xff0c;避免重复消费tag : string;// 消息体body : any;constr…

备战蓝桥杯Day18 - 双链表

一、每日一题 蓝桥杯真题之工作时长 这个题写代码做的话很麻烦&#xff0c;而且我也不一定能写出来&#xff0c;所以我直接就是用的excel来计算的时间和。 使用excel的做法 1.先把文件中的时间复制到excel中。 2.把日期和时间分到两列。 分成两列的步骤&#xff1a; 选中要…